繁体   English   中英

如何通过指定.php文件名在Rewrite Rules中传递参数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM