.htaccess 为什么这个重写规则只适用于301重定向,而不适用于其他情况?
我有以下重写规则:.htaccess 为什么这个重写规则只适用于301重定向,而不适用于其他情况?,.htaccess,url-rewriting,.htaccess,Url Rewriting,我有以下重写规则: RewriteRule ^(.*)/white/(.*)/$ /$1/$2/?tags=white [R=301,L] 它可以工作并更改以下内容: http://bag-saver.com/uk/shop/white/clutch-bags/ RewriteRule ^(.*)/white/(.*)/$ /$1/$2/?tags=white [QSA,L] 进入: 但是,我不想要301。我只想重写URL。我尝试了以下方法: http://bag-saver.com/uk
RewriteRule ^(.*)/white/(.*)/$ /$1/$2/?tags=white [R=301,L]
它可以工作并更改以下内容:
http://bag-saver.com/uk/shop/white/clutch-bags/
RewriteRule ^(.*)/white/(.*)/$ /$1/$2/?tags=white [QSA,L]
进入:
但是,我不想要301。我只想重写URL。我尝试了以下方法:
http://bag-saver.com/uk/shop/white/clutch-bags/
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
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写规则^(.*)-[0-9]{9}[0-9]+/$/$1/[R=301,L]
重写规则^(.*)/white/(.*)/$/$1/$2/?标记=white[R=301,L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress
要修复找不到页面的错误,您可以尝试将index.php
设置为Apache中的默认页面,如果缺少,则打开Apache配置文件httpd.conf
:
vi httpd.conf
找出一行内容如下:
DirectoryIndex
现在根据您的要求进行设置:
DirectoryIndex index.html index.htm index.php
保存并关闭文件。重新启动Apache web服务器:
/etc/init.d/httpd restart
请注意,如果您无权访问Apache配置文件。将DirectoryIndex
添加到.htaccess
文件中。使用
更新另一个选项是删除
R=301
,以避免强制重定向
RewriteRule ^(.*)/white/(.*)/$ /$1/$2/?tags=white [L]
/uk/shop/clutch bags/?tags=white
真的解决了什么问题吗?您是否有其他规则(订单非常重要)?是-/uk/shop/clutch bags/?tags=white shows white clutch bags-hanks-非常明显,它应该是P作为代理。我看到一些关于在你提供的链接上使用P的性能警告-有什么建议吗?这与问题无关。存在的页面出现“未找到页面”错误。