5

我有一个网站,它成功地将第一个斜杠后的内容传递给指定的 .php 文件。(优雅地:删除“.php”)

site.com/azamat to site.com/azamat.php

RewriteCond %{REQUEST_FILENAME} !-d    
RewriteCond %{REQUEST_FILENAME}\.php -f   
RewriteRule ^(.*)$ $1.php [NC]

如何向这些规则添加其他参数,以便传递“页面”参数,例如:

site.com/azamat/bagatov to site.com/azamat.php?page=bagatov

或者

site.com/thisisthefile/andparams to site.com/thisisthefile.php?page=andparams

4

1 回答 1

2

尝试添加这些规则(保留您已有的规则):

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/([^/]+)/.+$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^([^/]+)/(.+)$ /$1.php?page=$2 [L]

%1除了使用反向引用来检查URI 的第一部分是否作为 php 文件存在之外,这或多或少类似于您所得到的。这是第一部分的比赛:

RewriteCond %{REQUEST_URI} ^/([^/]+)/.+$

这是查看([^/]+)分组是否作为 php 文件存在的方法:

RewriteCond %{DOCUMENT_ROOT}/%1.php -f

其他一切都是为了匹配第一个之后的内容/并使其成为page查询字符串参数。

于 2012-08-13T21:47:00.927 回答