处理我的网页的重定向。我列出了所有旧网址和新网址。
旧网址是/directory/subdirectory/file.php
新网址是干净的网址
/目录/子目录/文件/
一些新的网址与没有“.php”的旧网址相匹配,而另一些则没有。
一个网页建议:
RedirectMatch 301 ^/sales/products/item$ /products/item-name/
但下面会给我一个重定向循环吗?
RedirectMatch 301 ^/privacy-policy$ /privacy-policy/
我还没有尝试过,但希望不要让自己陷入困境。
答案 0 :(得分:0)
使用Apache的mod_rewrite - 将这些行添加到.htaccess
文件中:
# Activate Rewrite Engine
RewriteEngine On
# redirect *.php to "nice" url
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)\.php$ $1/ [R=301,QSA]
# process "nice" urls by looking for appropriate .php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ $1.php [L,QSA]
这些规则将做两件事:
1)将“301”* .php重定向到“漂亮”的网址:directory/subdirectory/file.php
将成为directory/subdirectory/file/
2)正确地提供这样的“好”的网址,例如directory/subdirectory/file/
将被视为directory/subdirectory/file.php
。
P.S。如果重定向不起作用(有时可能会根据配置发生),请尝试在$ 1之前添加斜杠(例如/$1
)