Apache 将旧URL重写为漂亮URL,并使用.htaccess将旧URL重定向到新URL
我对Apache 将旧URL重写为漂亮URL,并使用.htaccess将旧URL重定向到新URL,apache,.htaccess,mod-rewrite,url-redirection,friendly-url,Apache,.htaccess,Mod Rewrite,Url Redirection,Friendly Url,我对.htaccess设置有一些问题。 我的网站主页url是:,我使用mod_rewrite创建漂亮的url: 这是我对漂亮URL的重写规则(它有效): 这正是我想要的,但当我将“旧URL”重定向到新URL时,会出现一些问题 我的Chrome浏览器显示“www.domain.com重定向您的次数太多。” 这是我的旧URL重定向到新规则: RewriteRule ^b/en/(.*)$ /en/$1 [NC,L,R=301] 这是一个一般的两部分问题。您需要将原始请求重定向到prettier 1
.htaccess
设置有一些问题。
我的网站主页url是:,我使用mod_rewrite
创建漂亮的url:
这是我对漂亮URL的重写规则(它有效):
这正是我想要的,但当我将“旧URL”重定向到新URL时,会出现一些问题
我的Chrome浏览器显示“www.domain.com重定向您的次数太多。
”
这是我的旧URL重定向到新规则:
RewriteRule ^b/en/(.*)$ /en/$1 [NC,L,R=301]
这是一个一般的两部分问题。您需要将原始请求重定向到prettier 1:
RewriteRule ^en/(.*)$ /b/en/$1 [L,QSA,NC]
RewriteCond %{THE_REQUEST} ^GET\ /b/(en)/(\S*) [NC]
RewriteRule ^b/ /%1/%2 [R=301,L]
在测试新规则之前,一定要清除浏览器的缓存。我有一个更通用的用例,我不得不稍微修改一下@hjpotter92的解决方案 旧的URL结构:
http://example.com/index.php?page=foo
新的URL结构:
http://example.com/foo
所以我想让URL变得“漂亮”(即SEO友好),但也让旧的(丑陋的)URL重定向到新的URL,这样旧的书签仍然可以工作
以下是我的解决方案:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^/?(.*)$ /index.php?page=$1 [L,QSA,NC]
RewriteCond %{THE_REQUEST} ^GET\ \/?index\.php\?page=(\S*) [NC]
RewriteRule ^index.php /%1? [R=301,L]
不要使用
PT
标志。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^/?(.*)$ /index.php?page=$1 [L,QSA,NC]
RewriteCond %{THE_REQUEST} ^GET\ \/?index\.php\?page=(\S*) [NC]
RewriteRule ^index.php /%1? [R=301,L]