0

次の条件に一致する URL をリダイレクトしようとしています。

old-domain.com/marketplace/businesses/anything-here/ads/
old-domain.com/marketplace/businesses/anything-here/ads/anyhting-after-this-too
old-domain.com/marketplace/businesses/anything-here/ads/anyhting-after-this-too/anyhting-after-this-too/
etc...

new-domain.com/deal/

これは私の.htaccessファイルがどのように見える かです

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteRule ^marketplace/businesses/([a-z0-9\-_]+)/ads/(.*) http://new-domain.com/deal/ [R=301,L]
</IfModule>

と他のコンボを交換([a-z0-9\-_]+)するなど、いくつかのバリエーションを試しましたが、うまくいかないようです。([A-Za-z0-9_-\s\.]+)[a-zA-Z-_0-9]+)

また、私が URL のどこで言ったかに注目してanything-hereください。これは、そこにあるほとんどすべてのものに一致できるようにしたいという意味です。

どんな助けでも大歓迎です。

ありがとう

4

2 に答える 2

1

問題は、物理ディレクトリに/marketplace/businesses/ファイル.htaccessがあり、これが機能しないことでした。

これをその.htaccessファイルに追加することができ、魅力的に機能しました。

ご覧いただき、刺してくださった皆様、ありがとうございました。

于 2012-10-01T14:26:05.863 に答える
0

これはうまくいくかもしれないと思います。(まだ試していませんが)

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^marketplace/businesses/(.*) http://new-domain.com/deal/$1 [NC]

これで訳せます

old-domain.com/marketplace/businesses/anything-here/ads/
old-domain.com/marketplace/businesses/anything-here/ads/anyhting-after-this-too
old-domain.com/marketplace/businesses/anything-here/ads/anyhting-after-this-too/anyhting-after-this-too/

これに

http://new-domain.com/deal/anything-here/ads/
http://new-domain.com/deal/anything-here/ads/anyhting-after-this-too
http://new-domain.com/deal/anything-here/ads/anyhting-after-this-too/anyhting-after-this-too/

または、このようにパーツをそのまま残したい場合は、これを試してください

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^marketplace/businesses/([a-zA-Z0-9\-_]+)/ads/([a-zA-Z0-9\-_]+) http://new-domain.com/deal/$1/$2 [NC]

これはこれに翻訳されます

http://new-domain.com/deal/anything-here/anyhting-after-this-too

しかし、他の2つは正規表現と一致するとは思いません。

于 2012-09-28T18:08:46.853 に答える