我在这里(下面)有我的HTACCESS文件,我想重定向/付款到/设计/付款只是为了让链接发送到客户端时更容易。
以下是整个文件:
<Files .htaccess>
order allow,deny
deny from all
</Files>
ErrorDocument 404 http://mrobertsdesign.ca/404
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC]
RewriteRule ^ %1 [L,R=301,NC]
RewriteCond %{HTTP_HOST} ^mrobertsonline\.ca [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.mrobertsonline\.ca [NC]
RewriteCond %{HTTP_HOST} ^www\.mrobertsdesign\.ca [NC]
RewriteRule ^(.*)$ http://mrobertsdesign.ca/$1 [L,R=301,NC]
RewriteRule ^([a-zA-Z0-9]+)/?$ index.php?page=$1 [NC]
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ index.php?category=$1&page=$2 [NC]
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ index.php?category=$1&subcat=$2&page=$3 [L,NC]
文件工作正常,如果您发现任何应该更改的内容,请告诉我。但它的工作正常,无论如何......
要将页面“/ payments”重定向到“/ design / payments”,我理解我应该使用“redirect”,如下所示:
Redirect 301 /payments /design/payments
但是当我添加它时,它会将我重定向到:
http://mrobertsdesign.ca/design/payments?page=payments
现在我不明白我需要改变什么,这一切都真的,所有的帮助都会受到赞赏!
答案 0 :(得分:0)
您需要在规则之前添加阻止条件
RewriteRule ^([a-zA-Z0-9]+)/?$ index.php?page=$1 [NC]
她被/payments
的请求解雇了,添加了参数,然后Redirect
保留了这些添加的参数。
RewriteCond %{REQUEST_URI} !^/payments
RewriteRule ^([a-zA-Z0-9]+)/?$ index.php?page=$1 [NC,QSA]
作为附注,您可能还想在最后3个规则中添加[QSA][1]
标志,因为当您在RewriteRule中添加参数时,先前的查询字符串会丢失。