我刚刚移动了一个站点,并且仍在查看一些旧页面。这是旧 url 结构的示例:
http://mydomain.com/text_version/personal_and_people_development.php
以及我希望它如何重定向到:
http://mydomain.com/personal-and-people-development/
我想要它做的是 301/text_version/
通过剥离/text_version
路径部分重定向文件夹中的任何页面,将所有下划线转换为连字符并用.php
尾部斜杠替换文件扩展名。
另请注意,我允许用户使用www.
子域,并且将来可能需要https://
访问。
是否可以像这样进行文件夹范围的 301 重定向,还是我必须指定每个单独的页面?如果是这样,有人可以给我一个指针,因为我不太擅长mod_rewrite
or regex
。
更新:由于将其他人的代码串在一起,这是我迄今为止设法拼凑的。这存储在.htaccess
位于/text_version
子文件夹中的文件中。
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [L, QSA]
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://mydomain.com/$1/ [L,R=301]
RewriteRule (.*)_(.*) $1-$2 [N]
但是,这会转换:
http://mydomain.com/text_version/personal_and_people_development.php
至
http://mydomain.com/personal-and-people-development.php/