Как изменить .htaccess для веб-приложения (в сочетании с WordPress 3.0.1) - PullRequest
0 голосов
/ 24 октября 2010

Мой вопрос касается .htaccess

Я использую WordPress 3.0.1 в качестве внешнего интерфейса моего веб-приложения.Я хочу, чтобы большинство HTTP-обращений следовали обычному потоку WordPress.

Однако я создал специальную «Страницу» в WordPress, которая содержит встроенный PHP-код, обеспечивающий работу моего веб-приложения.

URL этогоФорма "http://site.com/app/" уже перейдет на правильную страницу.

URL этой формы" http://site.com/app/?a=alpha&b=beta" перейдите на ту же страницу и передайте параметры моему веб-приложению.Это правильно, но URL выглядит ужасно.

Вот мой вопрос:

Я хочу, чтобы красиво выглядящие URL этого формата:

http://site.com/app/alpha/beta

были переписаны таким образом->

http://site.com/app/?a=alpha&b=beta

Я пытался добавить различные вещи в .htaccess, но не могу заставить его работать.Я обычно получаю страницу WordPress 404.

Вот файл .htaccess, который был создан при установке WordPress 3.0.1

# .htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Я уверен, что должно быть многолюди, использующие WordPress в качестве внешнего интерфейса для своих веб-приложений, и другие, имеющие опыт работы с синтаксисом .htaccess.Будем благодарны за любые ответы или указания на решения.

заранее спасибо,

Дэвид Джонс

dxjones@gmail.com

http://dxjones.com

Ответы [ 2 ]

0 голосов
/ 18 января 2012

Во-первых, для использования правил перезаписи в .htaccess требуются две вещи:

Options +FollowSymlinks
RewriteEngine on

Тогда это правило будет делать то, что вы описываете:

RewriteRule ^app/([^/]+)/([^/]+) /app/?a=$1&b=$2 [L]
  • FYI ... [^/] соответствует любому символу, кроме "/"
  • и [L] в конце сделают это переписывание невидимым для пользователя - оно будет передано только вашему приложению.

UPDATE

Чтобы посетители, использующие старые ссылки, автоматически перенаправляли на более привлекательный URL-адрес (и, возможно, улучшали отображение в поисковых системах страниц веб-приложений), добавьте дополнительное правило - например, такое:

 RewriteCond %{QUERY_STRING} a=([^&]+)&b=([^&]+)
 RewriteRule ^app/?$ /app/%1/%2  [R=301]

Приведенное выше правило превращает параметры a и b в ваш приятный URL-адрес, однако он не будет передавать дополнительные параметры запроса. (т.е. site.com/app?a=me&b=you&tag=zebra будет перенаправлять, но параметр 'tag' будет отброшен в процессе.) Вот вариант, который допускает дополнительные параметры:

 RewriteCond %{QUERY_STRING} (^|.*&)a=([^&]+)&b=([^&]+)(&.*|$)
 RewriteRule ^app/?$ /app/%2/%3?%1%4  [R=302]
0 голосов
/ 25 октября 2010

Дэвид, точно не знаю ответа, но вот мысль.

Вы можете использовать следующие плагины: http://wordpress.org/extend/plugins/exec-php/

Это позволит вам выполнить код из страниц или постов.

Если вы загляните в документацию WP, вы можете легко привязать другое приложение PHP к WP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...