我最近开始涉足 MOD_REWRITE 为我的网站制作更清晰的 URL。除了我尝试在 URL 中的参数之前添加文件名时,我的大多数 URL 都可以工作。
例如:
我试图让我的 URL 读取http://www.kickstartforex.com/strategy/name-of-strategy并且 URL 应该重写为http://www.kickstartforex.com/strategy.php?name=name-of -战略。
因此,我为这个特定实例编写的 RewriteRule 如下所示:
RewriteRule ^strategy/([a-z]+)$ /strategy.php?name=$1 [L]
但是,当我导航到我想要的 URL 时,我收到一个 404 错误,坚持认为该页面不存在。
我的怀疑使我相信在导航到上面列出的 URL 时,我的网站试图访问 /strategy/ 作为一个不存在的目录,因此抛出 404。
我显然对 /lessons/parameter 和 /tutorial/parameter 有同样的问题,但如果我能解决这个问题的一个实例,我相信另一个会效仿。
在服务器不尝试访问目录“/strategy/”的情况下,我如何能够列出“/strategy/parameter”来访问/strategy.php?
下面列出了我的 .htaccess 代码。
Options -MultiViews
RewriteEngine On
RewriteBase /
# Force search engines to use kickstartforex.com
RewriteCond %{HTTP_HOST} !^kickstartforex\.com$
RewriteRule ^(.*) http://kickstartforex.com/$1 [R=301,L]
# Specify search friendly URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^about$ /about.php [L]
RewriteRule ^contact$ /contact.php [L]
RewriteRule ^strategy/([a-z]+)$ /strategy.php?name=$1 [L]
RewriteRule ^lesson/([a-z]+)$ /lesson.php?name=$1 [L]
RewriteRule ^tutorial/([a-z]+)$ /tutorial.php?name=$1 [L]
提前致谢!(: