2016-06-21 5 views
0

У меня есть сайт со следующим кодом .htaccess. Проблема заключается в том, что apache (и/или что-то еще) ставит больше коллажей внутри URL-адресов. Например;Apache htaccess mod_rewrite добавляет дополнительные слэши

domain.com/blog/blog-post/ (Это то, что я хочу)

Но это то, что я получаю;

domain.com//blog/blog-post/ или domain.com//about-us//

Я гугле его, но я не достичь чего-то ПОЛЕЗНЫЕ. Извините за мой плохой английский :) Вот код

Options +FollowSymLinks -MultiViews -Indexes 
DirectorySlash Off 
RewriteEngine on 
RewriteRule ^neler-yapiyoruz/$ index\.php [NC] 
RewriteRule ^iletisim/$ contact\.php [NC] 
RewriteRule ^biz-kimiz/$ about\.php [NC] 
RewriteRule ^blog/$ blog\.php [NC] 
RewriteRule ^blog/([a-z0-9-]+)/$ blog_post\.php?slug=$1 [NC] 
RewriteRule ^portfolio/([a-z0-9-]+)/([a-z0-9-]+)/$ portfolio.php?catSlug=$1&slug=$2 [NC] 
+0

Я не эксперт, но общаюсь с mod_rewrite достаточно, чтобы знать (думаю), что в этом нет ничего, что могло бы вызвать двойные косые черты. Все, что я могу предложить, это убедиться, что вы * определенно * не используете кешированную версию и обновляете свой файл httpd.conf, чтобы вывести подробный файл журнала, чтобы выработать то, что происходит за кулисами. Подробнее здесь: http://stackoverflow.com/a/15137129/3596962. В основном использовать 'LogLevel alert rewrite: trace8' – Ian

+0

Большое спасибо, но и этот не решил мою проблему :(проблема все еще существует, как показано на снимке экрана здесь; http://prntscr.com/bjchco – kapikulu1

ответ

0

У вас есть дополнительный слэш в страницы будут перенаправлены расстаться в URL

Так что ваше правило должно быть

Options +FollowSymLinks -MultiViews -Indexes 
DirectorySlash Off 
RewriteEngine on 
RewriteRule ^neler-yapiyoruz/$ index.php [NC] 
RewriteRule ^iletisim/$ contact.php [NC] 
RewriteRule ^biz-kimiz/$ about.php [NC] 
RewriteRule ^blog/$ blog.php [NC] 
RewriteRule ^blog/([a-z0-9-]+)/$ blog_post.php?slug=$1 [NC] 
RewriteRule ^portfolio/([a-z0-9-]+)/([a-z0-9-]+)/$ portfolio.php?catSlug=$1&slug=$2 [NC] 
+0

it didn ' t work :(Все еще добавляет дополнительную косую черту после имени домена. – kapikulu1

+0

Да, обратные косые черты используются, чтобы избежать точек здесь - хотя они не являются строго необходимыми – Ian

0

Посмотрев исходный код веб-сайта, который вы показали на скриншоте в своем комментарии, кажется, что дополнительная косая черта из этой разметки в вашем HTML:

<base href="http://[domain].com.tr//" /> 

Вам просто нужно удалить вторую конечную косую черту.

+0

Проблема не связана с базовым href. Например, когда я помещаю файлы в подпрограмму -directory все идет хорошо, как и ожидалось. Но когда я перемещаю файлы в папку htdocs, apache ставит больше слэшей:/ – kapikulu1

+0

. Можете ли вы привести пример этого сценария? С базовым href, каким он есть, каждая страница, на которую работает браузер, requesting [domain] .com.tr // [request_uri]. С вашим .htaccess таким, каким он есть, ничего не меняется, поэтому двойные слэши будут ожидаемый результат. – Ian

Смежные вопросы