本文介绍了htaccess的作品本地服务器上没有主服务器上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下的.htaccess文件工作的本地MAMP服务器的罚款。然而,当我把它上传到主服务器时,它无法找到的新闻网页。
RewriteEngine叙述上 的RewriteBase / 的RewriteCond%{THE_REQUEST} \ S / +新闻\ .PHP \ news_id =([^ \ S&安培] +)?[NC] 重写规则^ /新闻/%1? [R = 301,L] 的RewriteCond%{} THE_REQUEST \s/+Category\.php\?pageNum_RS_Search=([^\s&]+)&totalRows_RS_Search=([^\s&]+)&Category=([^\s&]+) [NC] 重写规则^ /比较/%1/2%/ 3%? [R = 301,L] 的RewriteCond%{THE_REQUEST} \ S / +分类\ .PHP \类别=([^ \ S&安培] +)?[NC] 重写规则^ /比较/%1? [R = 301,L] 的RewriteCond%{THE_REQUEST} \ S / +产品\ .PHP \ ID =([^ \ S&安培] +)?[NC] 重写规则^%1? [R = 301,L] 的RewriteCond%{} REQUEST_FILENAME!-d 的RewriteCond%{} REQUEST_FILENAME!-f 重写规则^([^ /] +)?$ product.php?ID = $ 1 [L,QSA] 的RewriteCond%{} REQUEST_FILENAME!-d 的RewriteCond%{} REQUEST_FILENAME!-f 重写规则^比较/([^ /] +)/ $ Category.php?类别= $ 1 [L,QSA] 的RewriteCond%{} REQUEST_FILENAME!-d 的RewriteCond%{} REQUEST_FILENAME!-f 重写规则^比较/([^ /] +)/([^ /] +)/([^ /] +)/ $ Category.php pageNum_RS_Search = $ 1和;?2 totalRows_RS_Search = $&安培;类别= $ 3 [L, QSA] 的RewriteCond%{} REQUEST_FILENAME!-d 的RewriteCond%{} REQUEST_FILENAME!-f 重写规则^新闻/([^ /] +)/ $ news.php?news_id = $ 1 [L,QSA]
该类别和产品重定向做工精细的主服务器上,不过消息并没有给出一个404错误
其他重写规则上一级
RewriteEngine叙述上 的RewriteCond%{HTTP_HOST} ^ www.mysite1.co.uk $ [OR] 的RewriteCond%{HTTP_HOST} ^ mysite1.co.uk $ (。*)重写规则^ $HTTP \:\ / \ / mysite的\ .CO \ .UK \ / $ 1[R = 301,L]#5311a623b538f 的RewriteCond%{HTTP_HOST} ^ www.mysite.co.uk $ [OR] 的RewriteCond%{HTTP_HOST} ^ mysite.co.uk $ 重写规则^ Pianoshop \ / detailed_page \ .PHP $(*)的http \:\ / \ / mysite的\ .CO \ .UK \ /产品\的.php $ 1[R = 301,L]#5310700a7e477 的RewriteCond%{HTTP_HOST} ^ www.mysite.co.uk $ [OR] 的RewriteCond%{HTTP_HOST} ^ mysite.co.uk $ 重写规则^ Pianoshop \ / index_blog \的.php $HTTP \:\ / \ / mysite的\ .CO \ .UK \ /新闻\ .PHP $ 1(*)[R = 301,L]#531解决方案
我怀疑这是发生由于多视图你以`mod_rewrite的冲突现场服务器上启用选项。
添加此行对你的.htaccess的顶部来禁用它:
选项-MultiViewsI have the following .htaccess file working on the local MAMP server fine. However when I upload it to the main server it can't find the news page.
RewriteEngine On RewriteBase / RewriteCond %{THE_REQUEST} \s/+news\.php\?news_id=([^\s&]+) [NC] RewriteRule ^ /news/%1? [R=301,L] RewriteCond %{THE_REQUEST} \s/+Category\.php\?pageNum_RS_Search=([^\s&]+)&totalRows_RS_Search=([^\s&]+)&Category=([^\s&]+) [NC] RewriteRule ^ /Compare/%1/%2/%3? [R=301,L] RewriteCond %{THE_REQUEST} \s/+Category\.php\?Category=([^\s&]+) [NC] RewriteRule ^ /Compare/%1? [R=301,L] RewriteCond %{THE_REQUEST} \s/+product\.php\?id=([^\s&]+) [NC] RewriteRule ^ %1? [R=301,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+)?$ product.php?id=$1 [L,QSA] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^Compare/([^/]+)/?$ Category.php?Category=$1 [L,QSA] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^Compare/([^/]+)/([^/]+)/([^/]+)/?$ Category.php?pageNum_RS_Search=$1&totalRows_RS_Search=$2&Category=$3 [L,QSA] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^news/([^/]+)/?$ news.php?news_id=$1 [L,QSA]The Category and product redirects work fine on the main server however the news doesn't gives a 404 error
other rewrite rules one level higher
rewriteengine on rewritecond %{HTTP_HOST} ^www.mysite1.co.uk$ [OR] rewritecond %{HTTP_HOST} ^mysite1.co.uk$ rewriterule ^(.*)$ "http\:\/\/mysite\.co\.uk\/$1" [R=301,L] #5311a623b538f rewritecond %{HTTP_HOST} ^www.mysite.co.uk$ [OR] rewritecond %{HTTP_HOST} ^mysite.co.uk$ rewriterule ^Pianoshop\/detailed_page\.php(.*)$ "http\:\/\/mysite\.co\.uk\/product\.php$1" [R=301,L] #5310700a7e477 rewritecond %{HTTP_HOST} ^www.mysite.co.uk$ [OR] rewritecond %{HTTP_HOST} ^mysite.co.uk$ rewriterule ^Pianoshop\/index_blog\.php(.*)$ "http\:\/\/mysite\.co\.uk\/news\.php$1" [R=301,L] #531解决方案
I suspect this is happening due to MultiViews option enabled on your live server which conflicts with `mod_rewrite.
Add this line on top of your .htaccess to disable it:
Options -MultiViews
更多推荐
htaccess的作品本地服务器上没有主服务器上
发布评论