3

htaccessと書き換えについて質問です。
私はこのコードを持っています:

Options +FollowSymLinks  
RewriteEngine On  

RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f  

RewriteRule ^users/(\d+)*$ ./profile.php?id=$1  
RewriteRule ^threads/(\d+)*$ ./thread.php?id=$1  

RewriteRule ^search/(.*)$ ./search.php?query=$1  

example.com/users/123等しいですexample.com/profile.php?id=123

これへのリンクを変更すると: example.com/users/123/John
htaccess は /John または ID の後の余分な文字を無視しますか?
実はジョンは123IDの本名なのです。

4

2 に答える 2

4

$いいえ、ここで正規表現で (行末)を使用しているため、URL の余分な部分は無視されません。

^users/(\d+)*$ 

ルールを次のように変更します。

RewriteCond %{SCRIPT_FILENAME} !-d [OR]
RewriteCond %{SCRIPT_FILENAME} !-f  
RewriteRule ^ - [L]

RewriteRule ^users/(\d+) profile.php?id=$1 [L]

RewriteRule ^threads/(\d+) thread.php?id=$1 [L]

RewriteRule ^search/(.*)$ search.php?query=$1 [L]
于 2013-10-12T07:49:13.380 に答える