0

LE: Выяснено, что мои объясняющие навыки довольно плохие, поэтому я буду быстро подвергать tl; dr в конце.CMSMS Url rewrite

Недавно я получил проект, который подразумевает настройку веб-сайта на CMSMS (CMS Made Simple). Версия веб-сайта: 1.11.2, и я использую Apache и mod_rewrite, чтобы иметь дело с переписыванием URL. Я пытался решить одну маленькую вещь, связанную с URL Rewrite, но я просто не могу пройти мимо нее.

На веб-сайте установлен модуль для блога CGBlog. Чтобы отобразить содержимое блога, мне нужна страница (и шаблон для страницы, но мы оставим шаблон вне обсуждения, потому что это не было проблемой), где пролить все сообщения. В принципе, общая страница категории/архива. Таким образом, я создал страницу под названием «Блог» с блоком URL. До сих пор, не принимая во внимание блог, у нас было бы что-то вроде example.com/blog.

В блоге есть возможность добавить префикс перед каждым сообщением. Поэтому я могу сделать что-то вроде example.com/any_prefix_here/title-of-post. Также, когда внутри сообщения в блоге не будет учитываться, как вызывается страница архива/категории. Итак, я использовал этот префикс, чтобы URL выглядел одинаково. Пример: example.com/blog и когда внутри статьи example.com/blog(added как префикс)/title-of-the-post.

Теперь проблема заключается в том, что я пытаюсь сохранить имя страницы блога под названием «блог». Я не могу получить к нему доступ как example.com/blog, или я запрещу 403. Если я получаю его через example.com/anything/blog, он будет работать. Если я назову страницу blog2, я могу получить к нему доступ как example.com/blog2. Я не могу понять, что значит «блог», как слово. Также я не могу понять, как обойти запрет 403.

Я даже пытался переписать его каким-то образом через .htaccess, но безуспешно.

Это мой htaccess на данный момент.

# Attempt to override some php settings, these settings may be helpful on some hosts if your 
# default configuration does not meet CMS's minimum requirements, and your host 
# has given your account appropriate permissions 
#php_value upload_max_filesize "10M" 
#php_value session_save_path "tmp/cache" 

#php_flag magic_quotes_gpc Off 
#php_flag register_globals Off 
#php_flag session.use_trans_sid Off 

# (this is important, so uncomment if your host permit) 
Options -Indexes 
ServerSignature Off 

Options +FollowSymLinks 

# To prevent E_STRICT problems with PHP 5.3+ you can uncomment the following lines 
# Note: These settings should only be enabled for production sites! 
#php_flag display_startup_errors 0 
#php_flag display_errors 0 
#php_flag html_errors 0 
#php_value docref_root 0 
#php_value docref_ext 0 

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

# redirects /index.php?page=asfd to /asdf 
RewriteCond %{THE_REQUEST} /index\.php\?page=([^\s&]+) [NC] 
RewriteRule^/%1? [R=302,L,NE] 

# redirects /index.php/asfd to /asdf 
RewriteCond %{THE_REQUEST} /index\.php/([^?\s]+)\s [NC] 
RewriteRule^/%1 [R=302,L,NE] 

RewriteCond %{THE_REQUEST} ^.*/index\.php 
RewriteRule ^(.*)index.php$ /$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ index.php?page=$1 [QSA,L] 

RewriteCond %{HTTP_HOST} ^connsys.ro 
RewriteRule (.*) http://www.connsys.ro/$1 [R=301,L] 
</IfModule> 


<IfModule mod_header.c> 
# Disable ETags 
Header unset ETag 
FileEtag None 
</IfModule> 

<IfModule mod_deflate.c> 
# Compress css, plaintext, xml, gif, and images in transport. 
AddOutputFilterByType DEFLATE text/css text/plain text/xml image/gif image/jpeg image/png 
</IfModule> 

<IfModule mod_expires.c> 
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
# Set expires tags on various files... so that the browser wont attempt to reload them. 
ExpiresActive On 
ExpiresDefault "access plus 1 year" 
<IfModule mod_header.c> 
    # Setting cache control to public allowes proxy servers to cache the items too. 
    Header set Cache-Control "public" 
</IfModule> 
</FilesMatch> 
</IfModule> 

# compress text, html, javascript, css, xml: 
AddOutputFilterByType DEFLATE text/plain 
AddOutputFilterByType DEFLATE text/html 
AddOutputFilterByType DEFLATE text/xml 
AddOutputFilterByType DEFLATE text/css 
AddOutputFilterByType DEFLATE application/xml 
AddOutputFilterByType DEFLATE application/xhtml+xml 
AddOutputFilterByType DEFLATE application/rss+xml 
AddOutputFilterByType DEFLATE application/javascript 
AddOutputFilterByType DEFLATE application/x-javascript 

# Or, compress certain file types by extension: 
<files *.html> 
SetOutputFilter DEFLATE 
</files> 

<IfModule mod_headers.c> 
# WEEK 
<FilesMatch "\.(jpg|jpeg|png|gif|swf|woff)$"> 
    Header set Cache-Control "max-age=604800, public" 
</FilesMatch> 
</IfModule> 

Tl; dr: url переписать проблему/проблему разрешения на страницу блога. Страница называется «Блог», а slug/url - «блог». Я не могу получить доступ к блогу как example.com/blog, поскольку мне запрещается 403. Если я получаю доступ к блогу как example.com/anything/blog, он работает. Если я переименую страницу в blog2, она будет работать как example.com/blog2.

Как я должен подходить к этой проблеме? Я был бы признателен, если бы вы не спустили вниз и не сказали мне, что я сделал неправильно, если я объясню что-то не так.

Спасибо

+0

URL-адреса, о которых вы говорите, это те, которые вы видите в адресной строке вашего браузера. Вы должны точно определить, что они собой представляют, внутренне и то, что на самом деле отправляет 403. В верхней части 'index.php', прежде всего другого кода, добавьте эту строку:' var_dump ($ _ SERVER); die; 'и записывать выходные данные URL-адресов. Если они все пройдут, и между ними нет существенной разницы (кроме части пути URL-адреса), то ваша проблема вряд ли будет в вашем '.htaccess'. – Walf

+0

Ну, если я получаю доступ к домашней странице, я получаю var_dump. Если я получаю доступ к блогу/блогу, я все равно получаю 403 запрещенное сообщение с сервера. Но я сомневаюсь, что это проблема с сервером, поскольку веб-сайт был перемещен на 3 или 4 веб-сервера, причем все они испытывают ту же проблему. – Darkkz

+0

Это полезно; теперь вы знаете, что файл index.php никогда не получает запрос.Если все серверы имеют такую ​​же проблему, то это, вероятно, ваш код. Получите некоторую перерисовку, чтобы увидеть, что происходит на самом деле. – Walf

ответ

1

Есть ли реальная директория blog? Не отключен ни индексный файл/автоиндексирование, ни неправильные разрешения?

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

  • Нет связанных вопросов^_^