1

htaccess ファイルの書き換えルールが URL をより「SEO フレンドリーな URL」に変更しない理由を理解しようとしています。

これが私が意味することの例です:

私はこれから行きたい:

www.mydomain.com/Folder/post.php?url="how-to-make-me-a-happy-camper"

これに:

www.mydomain.com/Folder/how-to-make-me-a-happy-camper

またはこれ:

www.mydomain.com/Folder/post/how-to-make-me-a-happy-camper

これが私が持っているhtacessコードです:

RewriteEngine on
RewriteRule ^post/([a-zA-Z0-9-/]+)$ /post.php?url=$1

またはポストなし/

リンクをたどると www.mydomain.com/Folder/post.php?url=how-to-make-me-a-happy-camper.

4

2 に答える 2

1

質問は紛らわしく(説明は書き換えルールが示すものの反対を示しています)、必要なすべての情報がありませんが、ルートディレクトリの1つの.htaccessファイルでこれを試すことができます。

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !post\.php             [NC]
RewriteCond %{REQUEST_URI} ^/Folder               [NC]
RewriteRule ^.*/([^/]+)/? /Folder/post.php?url=$1 [L]

静かにマップ

http://www.mydomain.com/Folder/post/anythingまた

http://www.mydomain.com/Folder/anything

http://www.mydomain.com/Folder/post.php?url=anything

文字列postとはanything可変であるFolderと見なされ、スクリプト名(post.php)は固定されていると見なされます。

永続的で目に見えるリダイレクトの場合は、[L]を[R = 301、L]に置き換えます

于 2013-03-04T16:27:54.767 に答える
0

htaccess ファイルで RewriteBase オプションを使用します。

 RewriteBase / #( or if your document root in a subfolder named Folder: /Folder/ )

そして、2 つの RewriteCondition を追加する必要があるため、.htaccess ファイル (トピックには接続されませんが、apache rewrite_mod を使用する場合は推奨されます) は次のようになります。

RewriteEngine on

RewriteBase /Folder/
RewriteCond %{REQUEST_FILENAME} !-f # the requested uri does not points to a file
RewriteCond %{REQUEST_FILENAME} !-d # the requested uri does not points to a directory
RewriteRule ^post/([a-zA-Z0-9-/]+)$ post.php?url=$1

もちろん、.htacces ファイルは、post.php ファイルがある場所にある必要があります。(この場合、Folder という名前のディレクトリにあります)

于 2013-03-04T14:40:17.283 に答える