2017-01-31 11 views
1

最近、私はリライトとURLのリダイレクトによっていくつかのSEOフレンドリーなURLを作ろうと考えていました。.htaccessを使用してURLをリダイレクトして書き換えます。

私は、これは自動的に、今私はabc.com/study/abc/123

私の.htaccessファイルにリダイレクトするURL abc.com/study.php/abc/123このタイプの助けを必要とxyz.com/abcに変換してしまったxyz.com/abc.phpのようなURLのこのタイプのために正常に動作して書いたルール

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] 

EDITです。

すべてのファイルから.php拡張子を削除するのではなく、具体的には2つのファイルから.php拡張子を削除することを覚えました。つまりa.phpb.phpです。

答えて

1

あなたにもこのようなこのPATH_INFOをサポートするために、既存のルールを微調整することができます唯一の `` a.php`とb.php`すなわち二つのファイルから、具体的拡張子.phpを削除したい場合はどのような

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

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

すべてのファイルから削除する代わりに – parvez

+0

第2ルールの '(。+?)'を '(a | b)'に置き換えます – anubhava

+0

もし同じルールをa.phpに再度適用する必要があればとb.phpしかし、今回は自分の場所はルートディレクトリ '/'の代わりに '/c/a.phpと/ c/b.php'のようなcディレクトリにあり、そのディレクトリに.htaccessを置こうとしましたが、動作しません。 – parvez

関連する問題