2

書き換えルールに問題があります。私.htaccessはこのように見えます:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteRule admin/add-category$ adm_add_category.php [NC]
RewriteRule admin/categories-management$ adm_categories_management.php [NC]
RewriteRule admin/user-settings/(.*)$ adm_user_settings.php?update=$1 [NC]
RewriteRule admin/website-settings/(.*)$ adm_website_settings.php?update=$1 [NC]
RewriteRule admin/users-management$ adm_users_management.php [NC]
RewriteRule admin/websites-management$ adm_websites_management.php [NC]

RewriteRule settings/profile$ changesettings.php [NC]
RewriteRule settings/websites$ my_websites.php [NC]
RewriteRule settings/password$ changepassword.php [NC]
RewriteRule settings/logout$ logout.php [NC]

RewriteRule pages/index$ index.php [NC]
RewriteRule pages/access$ access.php [NC]
RewriteRule pages/submit-url$ submit_url.php [NC]
RewriteRule pages/online-users$ online_users.php [NC]
RewriteRule pages/register$ register.php [NC]
RewriteRule pages/websites$ websites_list.php [NC]
RewriteRule pages/websites/(.*)$ websites_list.php?page=$1 [NC]
RewriteRule pages/contact$ contact.php [NC]

RewriteRule search/(.*)$ search.php?term=$1 [NC]
RewriteRule category/(.*)$ category.php?name=$1 [NC]    

RewriteRule profile/(.*)$ profile.php?username=$1 [NC]
RewriteRule website/(.*)$ website.php?name=$1 [NC]


以下を除くすべての書き換えが機能しています。

RewriteRule search/(.*)$ search.php?term=$1 [NC]
RewriteRule category/(.*)$ category.php?name=$1 [NC]    

RewriteRule profile/(.*)$ profile.php?username=$1 [NC]
RewriteRule website/(.*)$ website.php?name=$1 [NC]

/profile/exampleguy などの特定のプロファイルを読み込もうとすると、404 エラーが表示されます。誰がこれを引き起こすのか知っていますか?

404 は次のようになります。

The requested URL /profile/exampleguy was not found on this server. 

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

さらに情報が必要な場合はお知らせください。本当に助かります。

4

2 に答える 2

5

L各ルールにフラグを追加して作成し[NC,L]、次を追加します。

Options +FollowSymLinks -MultiViews

の上に.htaccess

于 2013-09-25T20:44:39.817 に答える
1

デフォルトのページにリダイレクトするために、いくつかの書き換え条件で作業を試みましたか?

RewriteCond %{REQUEST_FILENAME} !-d  //Rewrites if the directory doesn't exist
RewriteCond %{REQUEST_FILENAME} !-f  //Rewrites if the file doesn't exist

RewriteRule ^(.*)$ index.php?$1 [L,QSA]  // Change this to suit your needs

また、 /profile/ のようなディレクトリは実際には存在しますが、「exampleguy」ではなく、それらのディレクトリに問題をキャッチするための別の .htaccess がない場合、サーバーはページを見つけようとするため、404 を取得していると思います。 (そして失敗....)

于 2013-09-25T20:43:44.523 に答える