【问题标题】:.htaccess works on local server not on main server.htaccess 适用于本地服务器而不是主服务器
【发布时间】:2014-03-17 13:24:26
【问题描述】:

我有以下 .htaccess 文件在本地 MAMP 服务器上正常工作。但是,当我将它上传到主服务器时,它找不到新闻页面。

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]

类别和产品重定向在主服务器上工作正常,但新闻没有给出 404 错误

其他更高一级的重写规则

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

【问题讨论】:

  • 您是否检查您已将news 页面上传到服务器? (在正确的位置)
  • 感谢您的回复。我已经检查过了,当没有重定向时,链接可以正常工作。
  • 好的,404 错误页面上显示的 URL 是什么?
  • 网址是/mysite.co.uk/news/34-news-title
  • 这是您的.htaccess 文件的全部内容吗?服务器上还有其他人吗?

标签: php .htaccess


【解决方案1】:

我怀疑这是因为在您的实时服务器上启用了与 `mod_rewrite 冲突的 MultiViews 选项。

在您的 .htaccess 顶部添加此行以禁用它:

Options -MultiViews

【讨论】:

  • 再次感谢您解决了问题。我想我会称你为我的超级老师
【解决方案2】:

在大多数情况下,apache 配置会出现问题,请检查您的 apache 配置

Check This for more Information

【讨论】:

  • 感谢您的回复我认为没关系,因为其他规则工作正常。
猜你喜欢
  • 2017-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-04
  • 2014-08-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多