我有一个URL:
http://mydomain.com/site/?cmd=home
我想把上面的地址改成http://mydomain.com/home
我使用的.htaccess文件如下:
RewriteEngine on
RewriteRule ^([^/'.]+)/?$ /site?cmd=$1 [L]
我不确定问题出在哪里?
提前感谢
规则的工作方式与此相反:您想从/site/?cmd=home
到/home
,但使用RewriteRule,您正在重定向到/site?cmd=
(可能某个地方有错误?(
如果您想像问题状态一样从/site/?cmd=home
重定向到/home
,请使用以下命令:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/site
RewriteCond %{QUERY_STRING} ^cmd=(.*)$
RewriteRule ^(.*)$ /%1/? [R=302,L]
您可以在DOCUMENT_ROOT/.htaccess
文件中使用以下代码:
RewriteEngine On
RewriteCond %{THE_REQUEST} /site'?cmd=([^'s&]+) [NC]
RewriteRule ^ /%1? [R=301,L]
# internal forward from pretty URL to actual one
RewriteRule ^([^/.]+)/?$ /site?cmd=$1 [L]