0

君の力が必要。このhtaccessの問題に多くの時間を費やしても、これを管理する方法がわかりません。

私の会社のWebサイトには多くのhttp://www.example.com/menu-alias/fooリンクがあり、http: //www.example.com/fooにリダイレクトされるはずです。

これだけでは難しい部分ではありませんが、耳を傾けてください...トリッキーな部分が続きます。

'menu-alias'なしでサイト(Joomla 1.5)を機能させることはできません。これは、すべてのhttp://www.example.com/fooが内部でhttp://www.example.comにマップされる必要があることを意味します。 / menu-alias/foo。そのため、ユーザーはブラウザのアドレスバーにhttp://www.example.com/fooを引き続き使用できます。

さらに複雑にするには、古いmenu-alias/fooリンクを/fooに301リダイレクトする必要があります。

htaccessの第一人者が私を助けてくれますか?これも可能ですか?

4

1 に答える 1

0

ドキュメント ルート (または仮想ホスト構成) の htaccess ファイルにこれらのルールを追加してみてください。

RewriteEngine On

# externally redirect requests that have "menu-alias"
RewriteCond %{THE_REQUEST} /menu-alias/([^\ \?]+)
RewriteRule ^ /%1 [L,R=301]

# internally rewrite requests back to menu-alias
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/menu-alias/
RewriteRule ^/?(.*)$ /menu-alias/$1 [L]

いくつかの潜在的な問題:

  1. Joomla は、元の書き換えられていないリクエストを で探している可能性があります$_SERVER。その場合、書き換えは機能しません。
  2. URI に backを追加するルールは/menu-alias/、既存のリソースを指していないすべての要求をやみくもに書き換えます。これは、Joomla が処理できる「仮想」パスの先頭に「メニュー エイリアス」が追加されることを意味します。
于 2012-10-26T20:44:19.407 に答える