1

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

提前致谢!(:

4

0 回答 0