我有 mod_rewrite 在开发环境中工作。
此测试域在 .htaccess 文件中使用这些规则:
Options +FollowSymLinks
Options +Indexes
RewriteEngine on
# deal with potential pre-rewrite spidered / bookmarked urls
RewriteRule ^clothes/index.php?pg=([0-9]+)$ /clothes/index$1.php [R=301,L]
# deal with actual urls
RewriteRule ^clothes/[0-9a-z-]+-pr([0-9]+).php$ /clothes/product.php?pid=$1 [L]
第二条规则工作正常。 输入 http ://testdomain.dev/clothes/shirt-pr32.php 是从 http ://testdomain.dev/clothes/product.php?pid=32 静默传送的内容......这是预期和预期的!
但是,假设这被应用于一个活动站点,一个最初使用路径的站点,例如:http://testdomain.dev/clothes/product.php?pid=32,我想重定向任何传入的请求跟随旧的新网址的模式......这是第一条规则的目的。
我的问题是我的测试服务器似乎忽略了第一条规则并按要求提供页面(页面加载但地址栏仍位于 http://testdomain.dev/clothes/product.php?pid=32)
任何帮助或启蒙都将被最亲切地接受!