我最近开始涉足MOD_REWRITE,为我的网站制作更清晰的网址。我的大多数URL工作除外,当我尝试在URL中的参数之前添加文件名时。
例如:
我正在尝试将网址设为http://www.kickstartforex.com/strategy/name-of-strategy,网址应重写为http://www.kickstartforex.com/strategy.php?name=name-of-strategy。
因此,我为这个特定实例编写的RewriteRule是这样写的:
RewriteRule ^strategy/([a-z]+)$ /strategy.php?name=$1 [L]
但是,当我导航到我想要的URL时,我收到404错误,坚持认为此页面不存在。
我的怀疑让我相信,在导航到上面列出的URL时,我的网站正在尝试访问/ strategy /作为一个不存在的目录,因此会抛出404.
我显然遇到了与/ lessons /参数以及/ tutorial /参数相同的问题但是如果我可以解决这个问题的一个实例,我相信其他人也会效仿。
如果没有服务器尝试访问目录“/ 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]
提前致谢! (: