2

私が求めているのは、URL で指定されたサブディレクトリを PHP の URL パラメーターに単純に書き換えて、見栄えの良いユーザーフレンドリーな URL にすることです。

これは、Apache Rewrite Engine と関連するパラメーターを使用して可能であることを知っています。私の側の問題は、つまり、書き直したくないということです

mydomain.com/parameter ----------->
mydomain.com/index.php?id=parameter 

でも書き直し

mydomain.com/subdirectory/parameter ----------->
mydomain.com/subdirectory/index.php?id=parameter

私のルート フォルダーには、404 エラーなどの .htaccess ファイルがあり、存在しないページをメインのページにリダイレクトしています。私が行ったテスト中に、他の .htaccess ファイルを上書きする可能性があると考えて、これらを無効にしました。私は試した...

RewriteEngine On
RewriteRule ^directory/([^/\.]+)/?$ index.php?id=$1 [L]

...そしてそれに似た他のスニペット。

このコードを含む .htaccess ファイルは、ルート/ディレクトリ フォルダーに配置されました。これで達成したかったのは、ルート/ディレクトリ/文字列をルート/ディレクトリ/index.php?id=文字列にリダイレクトすることでした。

.htaccess と書き換えに関する私の知識は明らかに限られているため、2 つの質問に対する回答が必要です。

  1. ルート フォルダー内の 404 リライターは、サブディレクトリ内の他のリライターを上書きしますか?

  2. どうすれば自分が求めているものを達成できますか? (url-shorteners の仕組みとよく似ています - bit.ly/shortened) サブディレクトリから?

4

1 に答える 1

3

このルールは、DOCUMENT_ROOT/.htaccessファイルで機能するはずです。

RewriteEngine On
RewriteRule ^(directory)/([^/.]+)/?$ /$1/index.php?id=$2 [L,NC,QSA]

.htaccessに他のファイルがないことを確認してくださいdirectory

于 2013-10-26T09:21:09.037 に答える