1

gallery2 の URL を gallery3 の URL 形式に切り替えるために、Apache の書き換えルールを作成しようとしています。

Old url example linked: http://domain.com/gallery/photoalbumxyz/photo.jpg.html
New url example needed: http://domain.com/photos/photoalbumxyz/photo

上記の URL の例で、「/photoalbumxyz/photo.jpg.html」は実際の物理ディレクトリではなく、gallery2 が「わかりやすい」URL を書き直した方法であることに注意してください。次のようなルールを使用して、/gallery/ を /photos/ に書き換えることができます。

RewriteRule ^(.*)$ /photos/$1   [QSA,L,R=301]

ただし、「.jpg.html」拡張子が /gallery/ -> /photos/ 書き換えと組み合わせて存在する場合、その一致と削除を理解するのに苦労しています。私が信じている正規表現の一致は、ピリオドをエスケープするために .jpg.html になると思いますが、「.jpg.html」拡張子を削除してディレクトリを書き換えるルールを作成するにはどうすればよいでしょうか?

RewriteRule ^\.jpg\.html$ $1 [NC]
RewriteRule ^(.*)$ /photos/$1   [QSA,L,R=301]

編集:ごめんなさい!アルバムの URL 形式が変更される可能性があること (写真を指定する必要はなく、サブ アルバムを含めることができます) について言及するのを忘れていましたが、具体的な例をいくつか追加しました。

The url rewrite rule also needs to follow:
old: http://example.com/gallery
new: http://example.com/photos

old: http://example.com/gallery/album
new: http://example.com/photos/album

old: http://example.com/gallery/album/subalbum/
new: http://example.com/photos/album/subalbum/

old: http://example.com/gallery/album/subalbum/photo.jpg.html
new: http://example.com/photos/album/subalbum/photo
4

2 に答える 2