2009-08-06 17 views
1

私のサイトでは、URLを指すRewriteRuleがあります。http://www.mysite.com/workはwork.phpファイルです。私はまた、project1.php、project2.phpなどのファイルを持った「仕事」と呼ばれるディレクトリを持っています。.htaccess URLをページまたはディレクトリに書き換えます

URLはhttp://www.mysite.com/workが仕事に行くことを知っているので.phpファイルですが、URL http://www.mysite.com/work/project1は "work"というディレクトリに入ってproject1.phpファイルを表示することを意味していますか?

EDIT

RewriteEngine On 
RewriteBase /beta/ 
RewriteRule ^([a-z]+)$ $1.php [L] 

このセキュリティワイズを改善するための任意の追加のヒント:これは私が現在働いているものです、指摘すべきか? (...ディレクトリジャンプなどの停止)

答えて

4

はこれを試してみてください:

RewriteEngin On 
RewriteBase/
RewriteRule ^work$ /work.php [QSA,L] 

http://www.mysite.com/work(末尾のスラッシュが)あなたのwork.phpファイルに行くことを確実にすること。あなたもwork.phpに行く(スラッシュを末尾に)http://www.mysite.com/work/をしたい場合は

は、ちょうど最後のRewriteRuleの上にこの行を追加します。

work.phpファイルを表示し、これ最後はスラッシュを指定しないでURLにリダイレクトされます
RewriteRule ^work/$ /work [R=301,QSA,L] 

UPDATE:すでにRewriteBaseディレクティブを持っているので、ちょうどあなたのRewriteBaseRewriteRule行(複数可)を入れますが、原則としてごRewriteRule前にキャッチオールを使用していて、すべてのものと一致します。

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule .* $0.php [L] 
+0

を削除するあなたは、私が私の現在の.htaccessファイルが含まれて前に、答え私はちょうどに自分のものを追加した場合に動作するようには思えない。おそらく私が現在持っているものとは何かを? – roflwaffle

+0

@Brandon、あなたのリビジョンに合わせて私の答えを更新しました。 – matpie

-1

は、このルールを試してみてください。わたしにはできる。

RewriteEngine On 
RewriteBase/
RewriteRule ^([a-z]+)$ $1.php [L] 

単にbeta/

+0

何が問題なのですか? – Gumbo

+0

私はそれをダウン投票した人ではありませんが、あなたのルールはあまりにも積極的で、OPが望んでいただけでなく、存在するファイルにマッチするという理由があると思います。 – matpie

0

これは、あなたの質問への答えは次のとおりです。

関連する問題