これはしばらくの間私を悩ませてきました。私のウェブサイトには、PHP スイッチ ケースを使用してページのコンテンツを変更するページがいくつかあります。私が抱えている問題は、これらのページの URL が SEO にあまり適していないことです。
これを変更したい:
http://www.abcprintingink.com/printing.php?page=print-and-mail
これに:
http://www.abcprintingink.com/printing.php/print-and-mail
またはそれ以上
http://www.abcprintingink.com/printing/print-and-mail
.htaccess を試しましたが、何も機能しません。これが私が.htaccessで試したことです:
RewriteEngine On
#RewriteRule ^web.php/([^-]*)$ /web.php?page=$1 [QSA]
#RewriteRule ^/web.php/?page\=(.*)$ /web.php?page=$1 [l]
RewriteRule ^web.php/(.*)$ /web.php?page=$1 [l]
RewriteRule ^web.php/([a-zA-Z0-9\-/\.]+)/?$ web.php?page=$1 [L]
.htaccess の他のコマンドは機能するので、ファイルや Web サーバーではないことがわかります。
これは、printing.php の switch ステートメントです。
<?php
/* SEO Switch Statements */
$pagename = "printing";
$page = htmlspecialchars($_GET["page"]);
switch ($page) {
case 'print-and-mail':
$page_title = 'page title';
$page_description = 'page desc';
$page_nav_active = 'print-and-mail';
$page_content_copy = 'page text';
$template_slider_image = 'image';
break;
}
?>
また、これはページをリンクするメニューの背後にあるスクリプトです。
<?php $menu=count($navigation); for ($i=0; $i<$menu; $i++)
{ echo '<div><li class="navigation"><a href="?page='.$navigation[$i].'">'
.$replaced = str_replace("-", " ", $navigation[$i]).'</a></li></div>'; } ?>