下面的代码用于从localhost/moneyworld/exchange?title=BTC_PMUSD
到localhost/moneyworld/BTC_PMUSD
的重写/重定向,但我想从www.domain.com/exchange?title=BTC_PMUSD
重写/重定向到www.domain.com/BTC_PMUSD
,同时不使用/moneyworld/
RewriteEngine ON
RewriteCond %{THE_REQUEST} s/(moneyworld)/exchange?title=([^s]*)s [NC]
RewriteRule ^ /%1/%2 [NE,QSD,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/?$ /moneyworld/exchange?title=$2 [L]
感谢
问题是我在url重写规则后将exchange.php转发到exchange,所以下面的代码简单地解决了
RewriteEngine ON
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/$1.php -f [NC]
RewriteRule ^(.+?)/?$ $1.php [L]
RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{THE_REQUEST} s/exchange?title=([^s]*)s [NC]
RewriteRule ^ /%1 [NE,QSD,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /exchange?title=$1 [L]