2017-07-06 17 views
0

私は通常このサイトを使用して問題を解決していますが、最初は適切な質問が見つからないため、実際に存在すれば私を許してください!複数のURLのhtaccessリダイレクト

現在、私は、このような形式の有効なURLを持っている:

http://www.example.com/index/modules/news/article.php?storyid=15807 

末尾の数字は、CMSで動的に生成されていることを、したがって、公表された新しいコンテンツを変更します。

短いURLを使用するためには、私はこれらのページは、このような形式でサブドメインでアクセスできるようにしたい:

http://news.example.com/n15807 

私を助け、むしろhtaccessファイルを使用してより良いオプションがある場合は私に知らせてください。

答えて

0

確かに! mod_rewriteは、Apacheの仮想ホスト設定ファイルで使用できます。

URLを再ルーティングする方法は、URLを受け入れるツールを使用してください。通常のPHPインストールの場合はApacheですが、これを行うツールはです。 PHPがhttpサーバを使用せずに接続を受け入れることができれば、PHPはそれを行うことができます。私は、PHPからサーバを構築してシングルトンとして実行することができると思いますが、そのようなことは聞いたことがありません。

ここでは、.htaccessを使用して、mod_rewriteはそれほど難しいものではありません。あなたの場合、news.example.com/n15807を本当に長いuriに翻訳したいと思っています。本当に長いuriは、サーバーが実際にロードするものです。

mod_rewriteは正規表現と一致し、それを別のURIに置き換えます。だから、^([^w]{3}).example.com/([a-z])([0-9]+)$のようなものにマッチさせて、それを使って/index/modules/$1/article.php?storyid=$3の値を置き換えてください。数字の前のnが何を意味するのか分かりません。

私が提出した正規表現は、正しい方向に;私はそれをテストしていない。 [編集 - それは間違いなく書かれたように動作しません。 mod_rewriteに取り組んでからしばらく経っています。しかし、そのアイデアはまだ有効です。 FWIW、私はサブドメインを使用しようとはしません]

要約:URLで動作するツールを使用してください。最もアクセスしやすい方法は.htaccessです。一度それを理解すると、あなたは完了です。あなたは将来のウェブサイトでそれを何度も再利用することができます。

+0

回答ありがとうございます。私は.htaccessの専門家ではありません。あなたは正確な言葉でそれを言うことができますか? –

+0

私はどちらかではありません...しかし、あなたはそのアイデアをとり、それと一緒に走りました。行きたい! –

0

検索の時間が終わって、ついにそれを手に入れました!

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^news.example.com$ 
RewriteRule ^news/(.*)$ http://www.example.com/index/modules/news/article.php?storyid=$1\#siteBody [R=301,L,NE] 

は、それは私がやったように多くの時間を費やすことではないいつか誰かを助けるかもしれないと思いました!

関連する問題