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