Я пытаюсь создать сайт WordPress с помощью мобильного устройства. Я установил субдомен в httpd.conf
и htaccess
.
теперь я добавляю пользовательский поиск в e:\wp\custom\
папка, другой мобильный пользовательский поиск в e:\wp\mobile\custom\
. я мог открыть http://localhost/wp/custom/search/hello/1
и http://m.localhost/custom/search/hello/1
правильно.
но если я получу доступ http://localhost/wp/custom/search/hello/1
в мобильном симуляторе Opera он будет перенаправлен на http://m.localhost/custom/search/hello/1?words=hello&number=1
. Почему ?words=hello&number=1
не было переписано?
вот мой .htaccess под e:/www/wp/
папка
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteRule ^custom/search/(.*)/(\d+)?$ custom/search.php?words=$1&number=$2
# custom folder, with some custom search url rewrite.
RewriteCond %{http_host} ^localhost/wp [NC]
RewriteRule ^(.*)$ http://localhost/wp/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
#mobile device detective
ewriteEngine on
RewriteBase /wp/
RewriteCond %{QUERY_STRING} (^|&)m=0(&|$)
RewriteRule ^ - [CO=mredir:0:localhost/wp]
RewriteCond %{HTTP:x-wap-profile} !^$ [OR]
RewriteCond %{HTTP:Profile} !^$ [OR]
RewriteCond %{HTTP_USER_AGENT} "acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "dang|doco|eric|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "wapp|wapr|webc|winw|winw|xda|xda-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "up.browser|up.link|windowssce|iemobile|mini|mmp" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "symbian|midp|wap|phone|pocket|mobile|pda|psp" [NC]
RewriteCond %{HTTP_USER_AGENT} !macintosh [NC]
RewriteCond %{HTTP_HOST} !^m\.
RewriteCond %{QUERY_STRING} !(^|&)m=0(&|$)
RewriteCond %{HTTP_COOKIE} !^.*mredir=0.*$ [NC]
RewriteRule ^(.*)$ http://m.localhost/$1 [R=301,L]
и еще один htaccess в e:/www/wp/mobile/
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^custom/search/(.*)/(\d+)?$ custom/search.php?words=$1&number=$2
# custom folder, with some custom search url rewrite.
RewriteCond %{http_host} ^m.localhost [NC]
RewriteRule ^(.*)$ http://m.localhost/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
РЕДАКТИРОВАТЬ я переехал mobile device detective
перед <IfModule mod_rewrite.c>
, вроде решим проблему. Кто-нибудь может помочь мне дополнительно проверить, есть ли другие проблемы? Спасибо еще раз.
#mobile device detective
ewriteEngine on
RewriteBase /wp/
RewriteCond %{QUERY_STRING} (^|&)m=0(&|$)
RewriteRule ^ - [CO=mredir:0:localhost/wp]
RewriteCond %{HTTP:x-wap-profile} !^$ [OR]
RewriteCond %{HTTP:Profile} !^$ [OR]
RewriteCond %{HTTP_USER_AGENT} "acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "dang|doco|eric|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "wapp|wapr|webc|winw|winw|xda|xda-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "up.browser|up.link|windowssce|iemobile|mini|mmp" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "symbian|midp|wap|phone|pocket|mobile|pda|psp" [NC]
RewriteCond %{HTTP_USER_AGENT} !macintosh [NC]
RewriteCond %{HTTP_HOST} !^m\.
RewriteCond %{QUERY_STRING} !(^|&)m=0(&|$)
RewriteCond %{HTTP_COOKIE} !^.*mredir=0.*$ [NC]
RewriteRule ^(.*)$ http://m.localhost/$1 [R=301,L]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteRule ^custom/search/(.*)/(\d+)?$ custom/search.php?words=$1&number=$2
# custom folder, with some custom search url rewrite.
RewriteCond %{HTTP_HOST} ^localhost/wp [NC]
RewriteRule ^(.*)$ http://localhost/wp/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
У вас есть два блока операторов Rewrite * в e:/www/wp/.htaccess
- у первого есть перезапись для /wp/custom/search
и откат к /index.php
, у второго есть редирект для мобильных клиентов. Вам необходимо изменить порядок этих блоков и отправить мобильных клиентов на мобильный сайт, прежде чем переписывать их URL-адреса.
Бонусная информация: линия RewriteCond %{http_host} ^localhost/wp [NC]
бесполезно. Во-первых, следует читать %{HTTP_HOST}
, во-вторых, эта переменная всегда будет содержать только имя хоста и никакую другую часть URL-адреса.