除了index.php之外,单个文件的.htaccess RewriteRule

时间:2018-03-04 12:34:38

标签: php .htaccess

我正在尝试为单个文件viewprofile.php编写.htaccess脚本,该文件有一个参数,但这似乎不起作用:

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^viewprofile$ viewprofile.php?mem=$1 [QSA, L]
RewriteRule ^viewprofile$ /viewprofile.php?mem=$1 [QSA, L]

RewriteRule ^([a-zA-Z0-9-\w]+)$ index.php?p=$1
RewriteRule ^([a-zA-Z0-9-\w]+)/$ index.php?p=$1

理想情况下,我希望结果显示为www.example.com/viewprofile/JHFSD667而不会干扰index.php文件。 viewprofile.phpindex.php都位于同一目录中。

1 个答案:

答案 0 :(得分:1)

您必须删除[QSA, L]中的空格。

然后,您必须添加捕获组才能将个人资料转换为mem

或者,您可以通过添加index.php仅为/?使用一个规则。

RewriteRule ^viewprofile/([\w\d]+)$ viewprofile.php?mem=$1 [QSA,L]
RewriteRule ^([a-zA-Z0-9-\w]+)/?$ index.php?p=$1