2013-12-14 3 views
0

У меня есть своего рода Joomla и WordPress mashup.mod_rewite с Joomla и WordPress

Сайт Joomla находится в каталоге Root (каталог httpdocs), а сайт WordPress находится в подкаталоге (подкаталог заданий).

У меня есть PHP-скрипт, который использует строку длиной запроса находится в директории WordPress:

http://domain.com/jobs/search.php?search=true&auth=AUTHCODE&skills=developer&andor=OR&timescale=6&areas=&andor_areas=OR&posted=1 

Я хотел бы, чтобы это было переписать что-то вроде:

http://domain.com/jobs/search/true/AUTHCODE/developer/OR/6//OR/1 

Я пробовал много mod_rewite, используя генераторы mod_rewrite онлайн, и они не работают. Я получаю «страницу не найдена» из стандартного предупреждения WordPress.

Я протестировал mod_rewite правила как в файле Joomla .htaccess, так и в файле .htaccess WordPress.

Я пробовал различные различные комбинации кода ниже с помощью:

RewriteRule ^/jobs/cvsearch/ 

или

RewriteRule ^cvsearch/ 

или

RewriteRule ^/cvsearch/ 

в начале правила, не повезло.

Пример того, что я пробовал ниже, в WordPress .htaccess файл:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /jobs/ 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /jobs/index.php [L] 
RewriteRule /jobs/search/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)$ /jobs/search.php?search=$1&auth=$2&skills=$3&andor=$4&timescale=$5&areas=$6&andor_areas=$7&posted=$8 [L] 
</IfModule> 

Joomla .htaccess файл находится ниже (показано, как это происходит с пакетом Joomla):

## 
# @version $Id: htaccess.txt 10492 2008-07-02 06:38:28Z ircmaxell $ 
# @package Joomla 
# @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. 
# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL 
# Joomla! is Free Software 
## 


##################################################### 
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE 
# 
# The line just below this section: 'Options +FollowSymLinks' may cause problems 
# with some server configurations. It is required for use of mod_rewrite, but may already 
# be set by your server administrator in a way that dissallows changing it in 
# your .htaccess file. If using it causes your server to error out, comment it out (add # to 
# beginning of line), reload your site in your browser and test your sef url's. If they work, 
# it has been set by your server administrator and you do not need it set here. 
# 
##################################################### 

## Can be commented out if causes errors, see notes above. 
Options +FollowSymLinks 

# 
# mod_rewrite in use 

RewriteEngine On 

########## Begin - Rewrite rules to block out some common exploits 
## If you experience problems on your site block out the operations listed below 
## This attempts to block the most common type of exploit `attempts` to Joomla! 
# 
# Block out any script trying to set a mosConfig value through the URL 
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] 
# Block out any script trying to base64_encode crap to send via URL 
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR] 
# Block out any script that includes a <script> tag in URL 
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] 
# Block out any script trying to set a PHP GLOBALS variable via URL 
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] 
# Block out any script trying to modify a _REQUEST variable via URL 
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) 
# Send all blocked request to homepage with 403 Forbidden error! 
RewriteRule ^(.*)$ index.php [F,L] 
# 
########## End - Rewrite rules to block out some common exploits 

# Uncomment following line if your webserver's URL 
# is not directly related to physical file paths. 
# Update Your Joomla! Directory (just/for root) 

# RewriteBase/


########## Begin - Joomla! core SEF Section 
# 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !^/index.php 
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC] 
RewriteRule (.*) index.php 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] 
# 
########## End - Joomla! core SEF Section 

Часть каталогов URL-адресов в RewriteRule - это запутанная часть для меня, так как я не уверен, как ее построить.

Кроме того, могут ли правила Joomla или WordPress .htaccess влиять на mod_rewrite, которые я пытаюсь сделать?

ответ

0

Вы установили правильное правило mod_rewite, оно должно быть сразу после вашего RewriteBase /jobs/.

Символ каретки отсутствует в правиле mod_rewrite и был добавлен в мой предоставленный код Apache mod_rewrite .htaccess. То, что вы имели, было это: RewriteRule /jobs/search/ etc., но должно быть так: RewriteRule ^/search/ etc.

Поскольку вы уже объявили о RewriteBase, как /работы/, RewriteRule /jobs/search/ etc. не является необходимым и должен быть изменен, чтобы просто использовать RewriteRule ^/search/ etc., минус /Работа/ часть.

Кроме того, я добавил во временное правило возврата 307, не относящееся к регистру, к правилу mod_rewrite.

Apache mod_rewrite.htaccess Код

RewriteEngine On 
RewriteBase /jobs/ 
RewriteRule ^/search/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*) /jobs/search.php?search=$1&auth=$2&skills=$3&andor=$4&timescale=$5&areas=$6&andor_areas=$7&posted=$8 [R=307,NC,L] 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /jobs/index.php [L] 
Смежные вопросы