0

ユーザーまたは検索エンジンがリンクし、画像なしでテキストのみを表示した後にスラッシュを追加する私のサイト内のリンク、およびそのページ内のリンクはそのパスに開かれていませんが、最初の URL の後にあるため、そのURLをもう一度開きます!

例:

http://www.mysite.com/page1.html

正常に動作します。

しかし、これはしません:

http://www.mysite.com/page1.html/

私はcssファイルもcmsも使用しておらず、通常のhtmlファイルのみを使用しています。サーバーは Ubuntu Linux 12.04.1 です。

これは .htaccess です:

ErrorDocument 404 http://mysite.com/error404.php

Options +FollowSymLinks 
RewriteEngine on
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^mysite.com\.org
RewriteRule (.*) http://mysite.com/$1 [R=301,L]

RewriteEngine on 

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mysite.com/.*$ [NC] [OR]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mysite.com.*$ [NC] [OR]
RewriteCond %{HTTP_REFERER} !^http://?mysite.com/.*$ [NC]  [OR]

AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
4

2 に答える 2

2

HTML コンテンツでは、相対リンク (で始まらない/リンク) を絶対リンク (で始まるリンク) に変更するか、ページの一部に/相対 URI ベースを作成する必要があります。<head>

<base href="/">
于 2013-09-02T17:28:19.030 に答える
0

どうですか:

RewriteEngine on

RewriteCond %{REQUEST_URI} .*/$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/?$ http://mysite.com/$1 [R=301,L]

/URL にエンディングがあり、存在するフォルダーがない場合、これによりエンディングが削除されます。

ただし、Jon Lin が彼の回答で述べたように、複数レベルのファイルがある場合、画像を最も近いフォルダーに書き換えようとするため、images/css/etc への絶対 URL を使用するのが最適なオプションです。

于 2013-09-02T17:28:27.203 に答える