Почему www.mywebsite.com/folder работает, а www.mywebsite.com/folder/ - нет? - PullRequest
2 голосов
/ 19 ноября 2011

Почему mywebsite.com / page работает, а mywebsite.com / page / - нет? У нас есть запись htaccess, которая удаляет конец файла .php, например, «mywebsite.com/new.php» можно получить просто как «mywebsite.com/new». Однако, если добавляется косая черта (и, похоже, это происходит с некоторыми поисковыми системами, добавляющими ее или браузерами по какой-то причине), то отображается наша страница с ошибкой 404. Есть идеи? Большое спасибо!

Вот все переписывающие файлы в файле .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z0-9\-_]+)/?$ $1.php [NC,L]

rewriteCond %{HTTP_HOST} ^mywebsite.cz [NC]
rewriteRule ^(.*)$ http://www.mywebsite.cz/$1 [R=301,L]

rewriteCond %{HTTP_HOST} ^mywebsite.com [NC]
rewriteRule ^(.*)$ http://www.mywebsite.com/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^mywebsite.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.mywebsite.com$
RewriteRule ^cs$ "http\:\/\/www\.mywebsite\.com\/index_cz\.php" [R=301,L]

RewriteCond %{HTTP_HOST} ([^.]+)\.mywebsite.com [NC]
RewriteCond %{HTTP:Accept-Language} (cs) [NC]
RewriteRule ^$ http://www.mywebsite.cz [L,R=301]

RewriteCond %{HTTP_HOST} ([^.]+)\.mywebsite.cz [NC]
RewriteCond %{HTTP:Accept-Language} (cs) [NC]
RewriteRule ^$ /index_cz [L,R=301]

RewriteCond %{HTTP_HOST} ^www.mywebsite\.com
RewriteRule ^([0-9]+)/?$ project.php?id=$1 [NC,L] # Handle project requests

RewriteCond %{HTTP_HOST} ^www.mywebsite\.cz
RewriteRule ^([0-9]+)/?$ project_cz.php?id=$1 [NC,L] # Handle project requests

Ответы [ 3 ]

3 голосов
/ 19 ноября 2011

Вы можете попробовать это:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z0-9\-_]+)/?$ $1.php [NC,L]

также, вы должны изменить все ваши,, чтобы указывать на корень папки. например:

<link rel="Shortcut Icon" type="image/ico" href="favicon.ico"/>
<script type="text/javascript" src="js/charactercounter.js"></script>

станет:

<link rel="Shortcut Icon" type="image/ico" href="/favicon.ico"/>
<script type="text/javascript" src="/js/charactercounter.js"></script>
2 голосов
/ 19 ноября 2011

когда вы пишете mysite.com/page, это направляет вас к документу в корневом каталоге. Однако, когда вы пишете мой site.com/page/, Apache будет думать, что вы ссылаетесь на каталог с именем page, а затем ищете документ в каталоге page.

0 голосов
/ 19 ноября 2011

может быть как то так ...

      RewriteCond %{HTTP_HOST} !^\.yoursite\.com$ [NC]
      RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...