2013-06-06 2 views
0

Я переношу веб-сайт с Windows Server в Apache, и мне нравится перерисовывать 404 URL-адреса для исправления/эквивалентного URL-адреса на моем новом сервере.htaccess | RewriteRule

То, что я хотел бы сделать, это сделать следующее sorten с помощью RexEx:

Redirect 301 /username/search.asp    /newdir/username/ 
Redirect 301 /username/contact.asp    /newdir/username/ 
Redirect 301 /username/legalmarketing.asp  /newdir/username/ 
Redirect 301 /username/home.asp     /newdir/username/ 

У меня есть попытаться использовать RewriteRule с чем-то вроде этого:

RewriteRule ^/username/(search|contact|legalmarketing|home)\.asp$ /newdir/username/ [R=301,L] 

Bat это не работает , Любая идея лучше? Я делаю что-то неправильно ?

UPDATE # 1

Я также попробовать

RewriteRule ^/username/search.asp$ /newdir/useranme/ [R=301,L] 
#as well the following 
RewriteRule ^username/search.asp$ /newdir/useranme/ [R=301,L] 

, но до сих пор нет шансов

UPDATE # 2

я также попробовать этот учебник: http://www.askapache.com/htaccess/crazy-advanced-mod_rewrite-tutorial.html и проблема кажется более сложной, поскольку null val которые я получаю с сервера.

Это код, созданный с помощью кода Tutorial:

Missed These Variables: 
Array 
(
    [INFO_API_VERSION] => (null) 
    [INFO_AUTH_TYPE] => (null) 
    [INFO_CONTENT_LENGTH] => (null) 
    [INFO_CONTENT_TYPE] => (null) 
    [INFO_DOCUMENT_ROOT] => (null) 
    [INFO_GATEWAY_INTERFACE] => (null) 
    [INFO_HTTPS] => (null) 
    [INFO_HTTP_ACCEPT] => (null) 
    [INFO_HTTP_ACCEPT_CHARSET] => (null) 
    [INFO_HTTP_ACCEPT_ENCODING] => (null) 
    [INFO_HTTP_ACCEPT_LANGUAGE] => (null) 
    [INFO_HTTP_CACHE_CONTROL] => (null) 
    [INFO_HTTP_CONNECTION] => (null) 
    [INFO_HTTP_COOKIE] => (null) 
    [INFO_HTTP_FORWARDED] => (null) 
    [INFO_HTTP_HOST] => (null) 
    [INFO_HTTP_KEEP_ALIVE] => (null) 
    [INFO_HTTP_MOD_SECURITY_MESSAGE] => (null) 
    [INFO_HTTP_PROXY_CONNECTION] => (null) 
    [INFO_HTTP_REFERER] => (null) 
    [INFO_HTTP_USER_AGENT] => (null) 
    [INFO_IS_SUBREQ] => (null) 
    [INFO_ORIG_PATH_INFO] => (null) 
    [INFO_ORIG_PATH_TRANSLATED] => (null) 
    [INFO_ORIG_SCRIPT_FILENAME] => (null) 
    [INFO_ORIG_SCRIPT_NAME] => (null) 
    [INFO_PATH] => (null) 
    [INFO_PATH_INFO] => (null) 
    [INFO_PHP_SELF] => (null) 
    [INFO_QUERY_STRING] => (null) 
    [INFO_REDIRECT_QUERY_STRING] => (null) 
    [INFO_REDIRECT_REMOTE_USER] => (null) 
    [INFO_REDIRECT_STATUS] => (null) 
    [INFO_REDIRECT_URL] => (null) 
    [INFO_REMOTE_ADDR] => (null) 
    [INFO_REMOTE_HOST] => (null) 
    [INFO_REMOTE_IDENT] => (null) 
    [INFO_REMOTE_PORT] => (null) 
    [INFO_REMOTE_USER] => (null) 
    [INFO_REQUEST_FILENAME] => (null) 
    [INFO_REQUEST_METHOD] => (null) 
    [INFO_REQUEST_TIME] => (null) 
    [INFO_REQUEST_URI] => (null) 
    [INFO_SCRIPT_FILENAME] => (null) 
    [INFO_SCRIPT_GROUP] => (null) 
    [INFO_SCRIPT_NAME] => (null) 
    [INFO_SCRIPT_URI] => (null) 
    [INFO_SCRIPT_URL] => (null) 
    [INFO_SCRIPT_USER] => (null) 
    [INFO_SERVER_ADDR] => (null) 
    [INFO_SERVER_ADMIN] => (null) 
    [INFO_SERVER_NAME] => (null) 
    [INFO_SERVER_PORT] => (null) 
    [INFO_SERVER_PROTOCOL] => (null) 
    [INFO_SERVER_SIGNATURE] => (null) 
    [INFO_SERVER_SOFTWARE] => (null) 
    [INFO_THE_REQUEST] => (null) 
    [INFO_TIME] => (null) 
    [INFO_TIME_DAY] => (null) 
    [INFO_TIME_HOUR] => (null) 
    [INFO_TIME_MIN] => (null) 
    [INFO_TIME_MON] => (null) 
    [INFO_TIME_SEC] => (null) 
    [INFO_TIME_WDAY] => (null) 
    [INFO_TIME_YEAR] => (null) 
    [INFO_TZ] => (null) 
    [INFO_UNIQUE_ID] => (null) 
) 

Дальнейшая идея пожалуйста?

+1

В зависимости от того, где этот код находится на сервере, вы, возможно, придется отказаться от ведущей слэш '/' из вашего шаблона поиска, или даже установить 'RewriteBase'. – CBroe

+0

Файл .htaccess находится в корневом каталоге моего веб-сайта, а также RewriteBase установлен в/ –

+1

И удаление ведущей косой черты ничего не значит? – CBroe

ответ

0

Попробуйте что-то вроде ниже

RewriteRule ^username/search.asp$ http://www.yourdomainname.com/newdir/useranme/ [R=301,L] 
+0

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

+1

. Все, что я хотел вам сказать, это добавить ваше доменное имя к новому URL lilke 'RewriteRule^имя пользователя/(поиск | контакт | legalmarketing | home) \. asp $ http://www.yourdomainname.com/newdir/username/ [R = 301, L] ' – Lepanto

+0

Я тоже попробовал, но не помог. В любом случае, спасибо –