0

これを実現するための RewriteRule または Condition を探しています。

www.example.com/a/ to a.php
www.example.com/a/b/ to a,b.php
www.example.com/a/b/c/ to a,b,c.php
...

私はこのルールを持っていました:

RewriteRule ^(.+)/(.+)/(.+)/$ ./$1,$2,$3.php [L]
RewriteRule ^(.+)/(.+)/$ ./$1,$2.php [L]
RewriteRule ^(.+)/$ ./$1.php [L]

それはうまくいきましa,ba,b,c

www.example.com/products/room/ to products,room.php
www.example.com/products/room/chair/ to products,room,chair.php

ではありませんa

www.example.com/products/ to products.php

誰でも私を助けることができますか?

編集: これは Synology diskstation Apache 構成の問題であることがわかりました。自分のコードと別のサーバーの anubhava のコードをチェックしたところ、問題なく動作しました。

4

1 に答える 1

3

私が言わなければならない非常に奇妙なファイル名。

とにかく、DOCUMENT_ROOT/.htaccessファイルで次のコードを試してください。

RewriteEngine On

## If the request is for a valid directory
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteCond %{DOCUMENT_ROOT}/$1.php -f    
RewriteRule ^([^/]+)/?$ /$1.php [L]

RewriteRule ^([^/]+)/([^/]+)/?$ /$1,$2.php [L]

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ /$1,$2,$3.php [L]
于 2013-11-13T13:21:06.013 に答える