2016-07-25 2 views
3

これは私のの.htaccessファイルは次のようになります。それは私が、例えばのために最後に.PHPせずにURLにアクセスすることができますが、の.htaccessリダイレクト

RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule .* - [L] 

#removes trailing slash if not a directory 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)/$ /$1 [R=301,L] 

#adds ".php" to a URL that isn't a directory or a file 
RewriteCond %{REQUEST_URI} !(\.[^./]+)$ 
RewriteCond %{REQUEST_fileNAME} !-d 
RewriteCond %{REQUEST_fileNAME} !-f 
RewriteRule (.*) $1.php [L] 

example.com/sign-up それはexample.com/sign-up.phpからexample.com/sign-up

に私をリダイレクトしていない私はそれを実現するために、このファイルに追加することができます任意のコードはありますか?

任意の洞察力は非常に参考になる

答えて

1

私はそう答えとしてこれを投稿したコメントでこれに答えることができない。

RewriteEngine On 

# remove PHP from root level requests 
RewriteCond %{THE_REQUEST} \.php[\s?] [NC] 
RewriteRule ^([^/]+)\.php$ /$1 [R=302,NE,L,NC] 

# To internally redirect /foo to /foo.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^([^/]+)/?$ $1.php [L] 
2

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

RewriteEngine On 

# browser requests PHP 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php 
RewriteRule ^/?(.*)\.php$ /$1 [L,R=301] 

# check to see if the request is for a PHP file: 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^/?(.*)$ /$1.php [L] 
+0

うわー!これは最高です!ありがとう! –

+0

また、どのようにリダイレクトするのですか:http://example.com/?slug=hey-there to:http://example.com/hey-there 助けてください@ ansuman-chauhan –

+0

道はありますか?このリダイレクトをルートレベルに限定することができます。example.com/sing.phpはexample.com/sing にリダイレクトする必要がありますが、example.com/data/sync.phpでは発生しません。 任意のアイデア@anubhava お時間をありがとう! –