0

我已经安装了 WAMP,并且在E:/wamp/www/project/index.php链接中的一个项目从index.php重定向到show.php我正在使用下面的.htaccess脚本来使 URLshow.php显示为/article-title而不是它通常所做的那样show.php?id=xxx

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule  (.*)$ show.php?id=$1 [QSA,L]

但是,在索引/显示页面旁边找到的上述.htaccess文件project/似乎不起作用。当我去时,它甚至没有向我显示项目文件夹www/

我不知道问题出在哪里,并且rewrite-module已打开

4

2 回答 2

1

鉴于您的文章 URL 是这样的:

http://localhost/project/1122-some-title-comes-here

您可以使用此规则:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^project/(\d+)-([\w-]+)/?$ /project/show.php?id=$1 [QSA,L]

如果您希望像这样从根文件夹中获取文章:

http://localhost/1122-some-title-comes-here

您可以将以上内容更改为:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(\d+)-([\w-]+)/?$ /project/show.php?id=$1 [QSA,L]

上述条件意味着,如果文件夹、文件和符号链接为假,则重写。规则本身^(\d+)-([\w-]+)/?$,如果它以数字和破折号开头并包含额外的字母数字字符和破折号,并且以/内部重定向到结尾或不结尾:

/project/show.php?id=$1

$1括号结果从规则传递到 id 的方法(\d+),在我们的 URL 示例中,id 表示数字1122

于 2013-08-10T16:28:01.493 回答
0

http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html “RewriteBase 指令指定用于替代相对路径的每个目录 (htaccess) RewriteRule 指令的 URL 前缀。”

于 2013-08-09T19:16:36.110 回答