2016-10-12 6 views
0

おそらく単純な問題に気が狂っています。RewriteRuleが.htaccessやapache2.confで動作しない

私はこのようなすべてのURLを書き換える必要があります。

http://stage.mydomain.com/post/F9YxPF/my_post_title http://stage.mydomain.com/post.php?uid_url=F9YxPF

に.htaccessのは、適切に処理されて、私は基本的なルールを設定したときに、それが働いているが、私は一致するのRewriteRuleを構築しようとすると、その構造私は常に404を取得します。

何か助けが大いに感謝されます!

編集:私のオリジナルのRewriteRuleた:??

のRewriteRule^/ポスト/([-ZA-Z0-9 _-] +)/(?。\ *)$ /post.php?uid_url= $ 1 [L]

+1

問題があるルールを投稿していない場合は、どうしてもお手伝いできません。 – arkascha

+0

よろしくお願いします。私が使っていたものは、この1つです:RewriteRule^/?post /([a-zA-Z0-9 _-] +)/(\?。*)?$ /post.php?uid_url = $ 1 [L] –

+0

一般的な注意:追加情報を質問に直接入力してください。コメントの技術的な詳細は読みにくいです。その質問の下に '編集 'ボタンがあります。手元にある問題は、あなたのマッチングパターンの中の '\?'です。リテラルの疑問符はURLの一部ではないため、ルールは決して一致しません。あなたは 'uid'の後ろにあるものに興味がないので、あなたはそれを無視することができます。ちょうど私が私の答えで示したように。 – arkascha

答えて

0

はラフな推測は、このようになります:確かに、より具体的に定義することができ

RewriteEngine on 
RewriteRule ^/?post/([^/]+)/? /post.php?uid_url=$1 [L,QSA] 

[^/]パターン、あなたはUID年代として受け入れられるべき文字明確な定義を提供する必要があります。

しかし、コメントの上で述べたように、あなたが現在失敗しようとしているルールを投稿することは本当に意味があります。そうでなければ、これはと推測されます。 ... httpサーバのエラーログファイルを調べると、についての詳細が明らかになります。はサーバーが内部的にアクセスしようとしているファイルです。

+0

ありがとうございましたArkascha、私はちょっとあなたが示唆したものを少し変更しました、そして今このように見えます\t RewriteRule^/?post /([a-zA-Z0-9 _-] +)/? /post.php?uid_url=$1 [L、QSA]それは完璧に動作しています!あなたのサポートに感謝します。 –

+0

私はお手伝いできることを嬉しく思います。 – arkascha