apache не публикует данные формы из файла подкаталога с правилами переписывания модов - PullRequest
0 голосов
/ 21 марта 2011

В тупик здесь.Есть ли какая-то концепция файловой структуры «переменная область видимости», которую мне нужно понять при использовании Mod-rewrite?

У меня есть такая структура файлов:

/ modules / modulename / index.php (этоФайл импортирует включаемый файлЕсли я отправляю сообщение в файл в корневом домене, то есть данные публикации. ???

Следует отметить, что индексный файл в структуре является реальным файлом, но он вызывается из index.php в корневом каталоге.так что в основном у меня есть SEF URL-адреса, которые обрабатываются из корневого index.php. Но я хотел, чтобы php-файл в моей папке модулей обрабатывал форму. Все это работало до того, как я попытался добавить SEF-URL.

ex. www.mydomain.com / contact-us / form включает в себя форму из /modules/contactform/index.php, в которой действие формы пытается использовать /modules/contactform/process.php, но нет данных поста! но есть данные поста откорень index.php, который является моим основным файлом роутераЕсли я положу свой файл process.php в корень, он будет работать.Однако не там, где я хочу этот файл.

Вот мои правила переписывания модов

Options +FollowSymLinks
RewriteEngine On
#RewriteBase /orientation_dev
RewriteBase /

#if the file exist pass it on thru and exit.
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.+) $1 [L]                

#if the file NOT a directory redirect to index
RewriteCond %{REQUEST_FILENAME} !-d     
RewriteRule ^(.+)/$ index.php?q=$1 [L]
RewriteRule ^(.+)$ $1/ [L,R=301]

Спасибо за понимание этого вопроса!

1 Ответ

0 голосов
/ 21 марта 2011

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

  # 301 Redirect all requests that don't contain a dot or trailing slash to
  # include a trailing slash
  # except for form POSTS

    RewriteCond %{REQUEST_URI} !\.
    RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L,NE]

    # Rewrites urls in the form of /parent/child/
    # but only rewrites if the requested URL is not a file or directory
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)$ index.php?q=$1 [QSA,NE]
...