我有一个站点,它成功地将第一个斜杠后的内容传递到指定的.php文件。 (优雅地:删除“.php”)
site.com/azamat to site.com/azamat.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC]
如何向这些规则添加其他参数,因此我可以传递“page”参数,例如:
site.com/azamat/bagatov to site.com/azamat.php?page=bagatov
或
site.com/thisisthefile/andparams to site.com/thisisthefile.php?page=andparams
答案 0 :(得分: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
查询字符串参数。