URL REWRITE正在导航到/ directory_name / <param />而不是/ file / <param />

时间:2013-11-14 02:00:20

标签: php apache .htaccess mod-rewrite url-rewriting

我最近开始涉足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]

提前致谢! (:

0 个答案:

没有答案