2013-08-30 5 views
1

хостинговой FAQ страницы найденной здесь http://www.freewebhostingarea.com/faq.html говорит:правило перезаписи появляется игнорироваться

Да, у нас есть полная поддержка .htaccess. Mod_rewrite включен, и вы сможете использовать постоянные ссылки или любое другое правило.

Так что в моем .htaccess файле у меня есть:

Options ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch -Indexes 
#Options -Indexes 
#Options All -Indexes  <------------- I've also tried these commented lines 
ErrorDocument 404 /404.php  
RewriteEngine On  

# Taking the advice of early posters to simplify my two rules into one 
# my current rewrite rule is: 

RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)/?$ viewpost.php?category=$1&number=$2 

# Below were my original re-write rules when I posted this question: 
#RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)$ viewpost.php?category=$1&number=$2 
#RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)/$ viewpost.php?category=$1&number=$2 

Единственная линия, которая работает это 404 страница, которую я поставил в (строке 4), я предполагаю, что я не могу предотвратить распечатку каталога, вероятно, потому, что сервер не разрешает переопределения.

Я не могу найти утверждение нигде, которое говорит, что я не могу, но это свободный хост, поэтому я так и предполагал.

Но в их FAQ указывается, что я могу использовать mod rewrite (может быть, я не понимаю?).

Когда я ввожу:

http://www.mywebsite.com/s/1 

Я просто получить мою страницу 404, а не то, что написано в

viewpost.php?etc... 

@ user2734435 какова ваша структура папок?

У меня есть большинство моих php-файлов в моей корневой папке. У меня есть папка для изображений, и у меня есть папка для сообщений для каждой категории.

Все соответствующие файлы, которые, как я считаю, сразу/явно релевантны для этой проблемы, находятся в корневой папке (могут быть другие вещи, которые уместны, которые я пропустил, но я попытался охватить все мои базы выше). мой viewpost.php, мой .htaccess мой 404.php (на самом деле не Релевент, но в комплекте, потому что это единственная линия, которая делает работу по назначению в файле.)

домен на public_html?

Это бесплатный хост. нет public_html. Областью, к которой я имею доступ с помощью этого веб-хостинга, является, вероятно, public_html. Я помещаю свой индекс в папку «root», и это то, что появляется при посещении моего домена.

где ваши php-файлы?

«Корневая» папка, описанная выше.

где ваш .htaccess файл?

Корневая папка. У меня нет другого файла .htaccess

У вас есть другие файлы .htaccess в других каталогах?

См. Выше.

+0

Есть ли причина, чтобы написать такое же правило в два раза? –

+0

Второе правило не то же самое. У меня есть трейлинг/так, чтобы оба/s/1 и s/1/переписывались. Это может вызвать проблемы? Сейчас я попытаюсь удалить одну из строк. – user2734435

+0

Добавить косую черту на первом, а затем?. – Skaparate

ответ

1
Options +FollowSymLinks -MultiViews 

RewriteEngine On 
RewriteBase/

ErrorDocument 404 /404.php 
RewriteRule ^([^/]+)/([0-9]+)/?$ /viewpost.php?category=$1&number=$2 [L] 

Это ([^/]+) сказать, вы хотите, чтобы захватить все не / в $ 1.

Этот ([0-9]+) говорит, что вы хотите поймать любое количество чисел в размере 2 долларов США.

Этот /? означает, что последний / не является обязательным.

Так короче говоря это, что правило означает:

domain.com/anythinghere/anynumberhere 

или

domain.com/anythinghere/anynumberhere/ 

Rediredts к:

domain.com/viewpost.php?category=anythinghere&number=anynumberhere 
0

Попробуйте

Options -Indexes +FollowSymLinks -MultiViews 
RewriteEngine On  
RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)/?$ viewpost.php?category=$1&number=$2 
+0

да. нет разницы. Все равно получите 404, когда я делаю domain.com/s/1 (мой упрощенный тестовый пример, прежде чем я реализую свои фактические категории и должности). Зачем нужен дополнительный вопросительный знак? не заставит ли браузер игнорировать viewpost.php? (который является файлом, в котором мне нужно передать переменные) Для получения дополнительной информации: я использую переменные в viewpost.php, чтобы решить, какое сообщение отображать например. включая $ 1. $ 2.php (очевидно, моя реализация немного сложнее, чем та, но вы получаете суть. – user2734435

+0

если файл htaccess находится внутри папки, тогда поместите эту строку 'RewriteBase/WRITE_YOUR_DIR_NAME_HERE /' после 'RewriteEngine on' – user2533445

+0

my htaccess файл находится в корне = ( – user2734435

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