[英]How to pass parameters in Rewrite Rules with specifying the .php file name?
我有一个站点,它成功地将第一个斜杠后的内容传递给指定的.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
尝试添加这些规则(保留您已有的规则):
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
查询字符串参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.