我有以下重写规则:
RewriteRule ^(.*)/white/(.*)/$ /$1/$2/?tags=white [R=301,L]
它有效并改变了以下内容:
http://bag-saver.com/uk/shop/white/clutch-bags/
成:
http://bag-saver.com/uk/shop/clutch-bags/?tags=white
但是,我不想要301.我想简单地重写URL。我尝试了以下内容:
RewriteRule ^(.*)/white/(.*)/$ /$1/$2/?tags=white [QSA,L]
但是一旦我删除R = 301,我就会发现页面未找到错误。
为什么会这样?
编辑 - 以下是其他规则:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^(.*)-[0-9]{9}[0-9]+/$ /$1/ [R=301,L]
RewriteRule ^(.*)/white/(.*)/$ /$1/$2/?tags=white [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
答案 0 :(得分:2)
使用[P] flag
RewriteRule ^(.*)/white/(.*)/$ /$1/$2/?tags=white [P]
<强>更新强>
其他选项只是删除R=301
以避免强制重定向
RewriteRule ^(.*)/white/(.*)/$ /$1/$2/?tags=white [L]
答案 1 :(得分:-1)
要修复页面未找到错误,您可以尝试将index.php
设置为Apache中的默认页面,如果缺少该页面,请执行此操作打开apache配置文件{{1} }:
httpd.conf
找出如下所示的行:
vi httpd.conf
现在根据您的要求进行设置:
DirectoryIndex
保存并关闭文件。重新启动Apache Web服务器:
DirectoryIndex index.html index.htm index.php
请注意,如果您无权访问Apache配置文件。将/etc/init.d/httpd restart
添加到您的DirectoryIndex
文件中。