0

ファイルに問題があり.htaccessます。

このURLの内容を表示したいのですが:

http://mywebsite.com/admin/payments/invoices/view/index.php?id=123456

これにアクセスすると:

http://mywebsite.com/admin/payments/invoices/view/123456/

これが私の実際の.htaccessです

Options +FollowSymlinks
RewriteEngine On
RewriteBase /admin/payments/invoices/
RewriteRule ^/view/([0-9]+)/(index.php)?$ /view/index.php?id=$1 [L,QSA]

何か考えはありますか?

ありがとう!

4

3 に答える 3

1

ディレクトリがある場合は、これをそのディレクトリviewに配置するのが最も簡単です(つまり):.htaccess {DOCUMENT_ROOT}/admin/payments/invoices/view/.htaccess

Options +FollowSymlinks
RewriteEngine On

RewriteBase /admin/payments/invoices/view
RewriteRule ^(\d+)$  index.php?id=$1 [L,QSA]

の左側にある index.php はRewriteRule必要ありません (実際には、動作しないと思います:DirectoryIndexこの段階ではまだ URI に注入されていないはずです - 他のRewriteRuleものが有効でない限り?)。 / の最後にRewriteBase.

上記は Apache/2.2.21 でテストしましたが、モジュールのルールはそれ以降のバージョンでも同じです。

于 2012-08-23T22:42:00.270 に答える
0

これをドキュメント ルートの htaccess ファイルに追加してみてください。

RewriteEngine On
RewriteCond %{QUERY_STRING} (^|&)id=([0-9]+)
RewriteRule ^admin/payments/invoices/view/index\.php$ /admin/payments/invoices/view/%1/index.php [L]

したがってhttp://mywebsite.com/admin/payments/invoices/view/index.php?id=123456、ブラウザの URL アドレス バーに入力すると、 でコンテンツが提供され/admin/payments/invoices/view/123456/index.phpます。あなたが実際に何を望んでいるのかは完全に不明であるため、逆の場合に備えて:

RewriteEngine On
RewriteRule ^admin/payments/invoices/view/([0-9]+)/(index.php)?$ /admin/payments/invoices/view/index.php?id=$1 [L,QSA]
于 2012-08-19T22:12:42.743 に答える
0

これを試して:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteRule ^.*admin/payments/invoices/view/index\.php\?id=([0-9]+) admin/payments/invoices/view/$1/index.php [L]

</IfModule>
于 2012-08-19T21:12:23.730 に答える