我安装了WAMP,并且E:/wamp/www/project/index.php
项目中的项目从index.php
重定向到show.php
我正在使用下面的.htaccess
脚本来创建网址show.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/
我不知道问题出在哪里,并且重写模块已经开启
答案 0 :(得分:1)
鉴于您的文章网址如下:
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]
以上条件意味着,如果文件夹,文件和符号链接为false,则重写它。
规则本身^(\d+)-([\w-]+)/?$
如果以数字和短划线开头并包含其他字母数字字符和短划线,则结束与否/
内部重定向到:
/project/show.php?id=$1
$1
表示将括号的结果从规则传递到(\d+)
的ID,在我的网址示例中,这将表示数字1122
。
答案 1 :(得分:0)
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html “RewriteBase指令指定用于替换相对路径的每个目录(htaccess)RewriteRule指令的URL前缀。”