5

最初のスラッシュの後のコンテンツを指定された.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

4

1 に答える 1

2

これらのルールを追加してみてください(すでに持っているルールを保持してください):

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/([^/]+)/.+$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^([^/]+)/(.+)$ /$1.php?page=$2 [L]

これは、URIの最初の部分がphpファイルとして存在する%1かどうかを確認するために後方参照を使用することを除いて、多かれ少なかれあなたが持っているものと似ています。これは最初の部分の一致です:

RewriteCond %{REQUEST_URI} ^/([^/]+)/.+$

そして、これは、([^/]+)グループ化がphpファイルとして存在するかどうかを確認するための問題です。

RewriteCond %{DOCUMENT_ROOT}/%1.php -f

他のすべては、最初の後にあるものと一致し、それをクエリ文字列パラメータ/にすることです。page

于 2012-08-13T21:47:00.927 に答える