.htaccess 使用htaccess重写和重定向

.htaccess 使用htaccess重写和重定向,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,一位客户要求我们将旧域(bcsbd.com)中的所有内容复制到他们的主域(ywcacam.org),并创建重定向,以便旧URL仍能正常工作。不幸的是,URL不完全匹配,例如,[olddomain]/about已成为[newdomain]/about\u soo\u bahk\u do。只有不到10个特定URL需要处理,我们最初在旧域的htaccess文件中使用重定向语句成功地处理了这些URL: # redirect specific pages to page on new domain Red

一位客户要求我们将旧域(bcsbd.com)中的所有内容复制到他们的主域(ywcacam.org),并创建重定向,以便旧URL仍能正常工作。不幸的是,URL不完全匹配,例如,[olddomain]/about已成为[newdomain]/about\u soo\u bahk\u do。只有不到10个特定URL需要处理,我们最初在旧域的htaccess文件中使用重定向语句成功地处理了这些URL:

# redirect specific pages to page on new domain
Redirect /about http://www.ywcacam.org/about_soo_bahk_do
我们还需要一个包罗万象的服务,以便任何其他请求都能转到新域上的特定URL,例如,www.bcsbd.com/somefile变成www.ywcacam.org/soo_bahk_do。我们使用重写语句处理此问题:

# catch-all for any requests not specified above
RewriteCond %{HTTP_HOST} ^(bcsbd.com|www.bcsbd.com) [NC]
RewriteRule ^(.*)$ http://www.ywcacam.org/soo_bahk_do [L]
快速研究表明,重写指令(使用mod_Rewrite)总是在重定向指令(使用mod_别名)之前处理。因此,我们将重定向替换为重写:

Options +FollowSymlinks
RewriteEngine On
RewriteRule /about http://www.ywcacam.org/about_soo_bahk_do [L]
RewriteRule /programs http://www.ywcacam.org/programs_soo_bahk_do [L]
...

# catch-all for any requests not specified above
RewriteCond %{HTTP_HOST} ^(bcsbd.com|www.bcsbd.com) [NC]
RewriteRule ^(.*)$ http://www.ywcacam.org/soo_bahk_do [L]
问题是,所有的一切都在起作用——新的重写规则被忽略了。我们在这些声明中做错了什么


提前感谢您的帮助

前斜杠在htaccess中永远不匹配。正确的regexp应该是
^about$
假设路径准确
domain/about
谢谢!这正是问题所在-显然需要花更多的时间练习基本的regexp;-)