1

ページは現在、次のアドレスで利用できます。

http://www.domain.co.uk/solutions/article/page-name1
http://www.domain.co.uk/solutions/article/page-name2
http://www.domain.co.uk/solutions/article/page-name3
etc

..しかし、SEOを強化するために、次のアドレスからアクセスできるようにしたいと思います。

http://www.domain.co.uk/solutions/page-name1
http://www.domain.co.uk/solutions/page-name2
http://www.domain.co.uk/solutions/page-name3

したがって、サイトルートの.htaccessファイルでmod_rewriteを使用して、各着信ページ要求のソリューションディレクトリの後に「article」ディレクトリを追加したいと思います。私は約1か月間適切な答えを探していて、mod_rewriteの基本チュートリアルを学習しようとしましたが、これを機能させることができないため、別のmod_rewriteの質問についてお詫びします。

これは現在の私の.htaccessファイルです:

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Removes index.php
    RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/$1 [L]

    # If 404s, "No Input File" or every URL returns the same thing
    # make it /index.php?/$1 above (add the question mark)      
</IfModule>
4

2 に答える 2

1

私は自分のサイトで似たようなことをしています。index.php を削除して短縮 URL を表示するために使用している .htaccess ルールは次のとおりです。

RewriteEngine On

# Removes index.php
RewriteCond $1 !\.(css|js|gif|jpe?g|png|ico) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1

RewriteCond %{REQUEST_URI} ^/solutions/(.*) [NC]
RewriteRule ^(.*) /solutions/article/%1 [L]

ブラウザのアドレス バーに表示される URL は、ExpressionEngine が認識する URL ではないことに注意してください。EE は {segment_2} を「記事」と見なします。

于 2012-10-29T16:02:49.073 に答える
0

編集 :

これを試して :

<IfModule mod_rewrite.c>
RewriteEngine On 

RewriteCond %{REQUEST_URI} !^solutions/article/ 
RewriteRule ^solutions/(.*)$ /solutions/article/$1 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !\.(gif|jpe?g|png)$ [NC] 
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
于 2012-09-06T10:23:46.083 に答える