3

私は自分のサイトを現在使用しているSEOフレンドリーにすることに取り組んでいます

RewriteEngine On
RewriteRule (.*)$ index.php?page=$1

に変わるためsite.co.uk/index.php?page=page_namesite.co.uk/page_name

サブページにも使いたいです。私はこれを試しました:

RewriteEngine On
RewriteRule (.*)/(.*)$ index.php?page=$1&subpage=$2

しかし、それは機能していません、それは実行されますsite.co.uk/page_name/sub_page、しかしあなたがそれに行くとき、それsite.co.uk/page_nameは見つからない404を返します。

実行site.co.uk/page_nameして戻ってほしいpage_name

また

site.co.uk/page_name/sub_pageそして戻るsub_page

等々

site.co.uk/page_name/sub_page/sub_page2/...

4

1 に答える 1

8

使用するだけ:

RewriteEngine On
Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]

問題がなければ、スクリプト内でリクエストをルーティングできます。

ページ変数をexplode()区切り文字/で分割してから、変数を設定します。

$route = explode('/',$_GET['page']);

$page    = isset($route[0]) ? $route[0] : null;
$subpage = isset($route[1]) ? $route[1] : null;
$yada    = isset($route[2]) ? $route[2] : null;

多くのMVCフレームワークはこのメソッドを使用します。その呼ばれるルーティング。

于 2012-09-17T00:40:50.613 に答える