0

サイトのメンバーが myWebsite/membersName の形式で URL を入力できるようにする「バニティ URL」機能を追加したときに、.htaccess ファイルを変更する必要がありました。バニティ URL 機能を追加するまでは、自分のホームページに転送されていました。 myWebsite/member-profile.php?member_id=123456 の形式

URL が myWebsite/someDirectory などのディレクトリを指している場合、.htaccess ファイルで指定されたエラー ページにリダイレクトされるという事実を除いて、すべて正常に動作します。

私は PHP プログラマーですが、RewriteRules やその条件についてはあまり詳しくありません。以下に、Linux サーバーのルート ディレクトリから .htaccess ファイル全体を貼り付けました。誰かが問題が何であるかを理解するのを手伝ってもらえますか?

SuPHP_ConfigPath /home/helcupor/public_html
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

#for files, append .php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

#for vanity urls redirect to url2id.php
RewriteCond %{REQUEST_FILENAME} >""
RewriteRule ^([^\.]+)$ url2id.php?vanityName=$1 [L]

AuthUserFile "/home/helcupor/.htpasswds/public_html/passwd"

ErrorDocument 404 /routing.php
#AuthName "/admin/"
4

1 に答える 1

0

の下でこの条件を変更してみてください#for vanity urls:

RewriteCond %{REQUEST_FILENAME} >""

に:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

潜在的なメンバー名が既存のリソース (ディレクトリまたはファイル) でないことを確認する必要があります。それ以外の場合は、リソースを提供するだけです。あなたが持っている状態と何を比較しようとしていたのかわからない。varは%{REQUEST_FILENAME}引き続きメンバー名です。

于 2012-08-27T22:24:21.643 に答える