我是.htaccess
的新人。我已阅读文档,但无法使重定向规则有效。
我希望RewriteRule
关注
http://mywebsite.com/restaurants/59393/the-grounds-of-alexandria.htm
到
http://mywebsite.com/restaurants/the-grounds-of-alexandria
我试过了这个
RewriteRule ^(.*)/[0-9]/(.*)$ ^(.*)/(.*)/$ [R=301,L]
另外,你如何获得子域并将其放在所有链接的前面,比如
http://sydney.mywebsite.com/restaurants/59393/the-grounds-of-alexandria.htm
到
http://mywebsite.com/sydney/restaurants/the-grounds-of-alexandria
但没有结果。
答案 0 :(得分:3)
重写这很简单:
http://mywebsite.com/restaurants/59393/the-grounds-of-alexandria.htm
to
http://mywebsite.com/restaurants/the-grounds-of-alexandria
您的重写规则RewriteRule ^(.*)/[0-9]/(.*)$ ^(.*)/(.*)/$ [R=301,L]
对于网址而言过于全球化。其次,你只说[0-9]只意味着一位数。
RewriteRule ^([^/]+)/[0-9]+/([^.]+)\.htm$ /$1/$2 [R=301,L]
试试这个;)
编辑(第二个问题):
http://sydney.mywebsite.com/restaurants/59393/the-grounds-of-alexandria.htm
to
http://mywebsite.com/sydney/restaurants/the-grounds-of-alexandria
当然;)你必须使用RewriteCond。
RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^([^\.]+)\.mywebsite\.com/([^/]+)/[0-9]+/([^.]+)\.htm
RewriteRule ^.*$ http://mywebsite.com/%1/%2/%3 [R=301,L]
为了便于说明,可以在上一个匹配项中使用%1-3,以便在RewriteRule语句中使用。这适用于每个子域,仅适用于子域。如果您需要特定的子域名,可以将第一行调整为^(sidney|othersubdomain|anothersubdomain)\.mywebsite\.com...
。