簡體   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