2

私はURL書き換えの初心者ですが、質問があります。これが私のルールの一部です:

RewriteRule ^admin/page1/?$ admin/page1.php
RewriteRule ^admin/page2/?$ admin/page2.php
RewriteRule ^admin/page3/?$ admin/page3.php
<more similar lines>

これらのpage(x)はすべて異なるphpファイルです。これで書き換えは問題なく動作しますが、これをすべて短縮することは可能ですか?例えば:

RewriteRule ^admin/(.*)/?$ admin/$1\(.php) (or whatever...)

答えてくれてありがとう:)

4

3 に答える 3

0

あなたはこのように試すことができます-

RewriteRule ^(.*)/(.*)/$ admin/$2.php?{QUERY_STRING}

コードはテストされていません。

于 2013-01-03T15:10:48.300 に答える
0

はい、次のようにします。

RewriteRule ^admin/(.*)/?$ admin/$1.php

ただし、これは一致admin//して変更されますが、これはあなたが望むものではないadmin/.phpと確信しています。したがって、 a の代わりに a を使用します。+*

RewriteRule ^admin/(.+)/?$ admin/$1.php

あなたが持っているルールも一致することに注意してくださいadmin/folderX/pageX。この動作が望ましくない場合は、次を試してください。

RewriteRule ^admin/([^/]+)/?$ admin/$1.php
于 2013-01-03T15:12:43.720 に答える
0

これは本当にいいです

<IfModule mod_rewrite.c>                                                                                                                                                                                                                     
    RewriteEngine On                                                                                                                                                                                                                         
    RewriteCond %{REQUEST_FILENAME} !-d                                                                                                                                                                                                      
    RewriteCond %{REQUEST_FILENAME} !-f                                                                                                                                                                                                      
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]                                                                                                                                                                                              
</IfModule>

それを .htaccess に入れてから、URL がたとえば /projects/ である場合、index.php で引数 $_GET['url'] .. を使用することをお勧めします。 ', $_GET['url']);

これは、最も簡単で基本的な URL 書き換えであり、実質的に何にでも適合します。

指定された URL がファイルシステムに存在するファイルである場合、そのファイルが提供されます。それ以外の場合は、index.php コードへの GET 引数で URL が提供されます。

于 2013-01-03T21:09:57.897 に答える