1

.html 拡張子を持つすべてのリンクを、get パラメータとしてディレクトリ + ページ名を持つ process.php ファイルにリダイレクトしたいと考えています。これらの link1 link2 ソリューションを試しまし が、うまくいきません。

例えば

http://localhost/Site/directory1/test1.html
http://localhost/Site/directory2/test2.html

次のように process.php にリダイレクトされます

http://localhost/Site/process.php?directory1/test1.html
http://localhost/Site/process.php?directory2/test2.html

私はこのようにしてみました。

RewriteEngine on
RewriteRule ^/(.*).html /process.php?page=$1

この

RewriteCond %{REQUEST_URI} \.html$
RewriteRule ^(.*/)?([^/]*)\.php$ /process.php?page=$2 [R=301,L]

しかし、それは機能しません。

これを行うための可能な方法を見て提案してください。

4

3 に答える 3

2

これを試して:

RewriteEngine on
RewriteRule ^([^/]*)/(.*\.html) /$1/process.php?page=$2 [R=301,L]
于 2012-12-16T07:30:07.720 に答える
1

あなたの2番目の例は、あなたが探していると私が信じているものに非常に近いです. .html を探しているときに .php を探しているディレクトリが 1 つだけ離れています。これを試してみてください。

RewriteEngine on
RewriteBase /
RewriteRule ^/(.*)/(.*)/(.*)\.html$ /Site/process.php?$2/$3 [R=301, L]
于 2012-12-16T07:39:09.710 に答える
0

これでうまくいくはずです(.htaccessファイルがSiteディレクトリにあると仮定して):

RewriteEngine On
RewriteCond %{REQUEST_URI} \.html$
RewriteRule ^(.*?/)?(.*)$ /$1/process.php?page=$2 [R=301,L]
于 2012-12-16T07:32:24.160 に答える