2013-08-21 6 views
1

я сделать это в Htaccess для переписывания URLправило перезаписи с HTAccess

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?username=$1 [QSA]  
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?username=$1 [QSA] 

Но сейчас я упорно трудиться, чтобы изменить его, чтобы быть, как это

RewriteRule ^([a-zA-Z]{2}).([a-zA-Z0-9_-]+)$ index.php?prefix=$1&username=$2 [QSA] 

и его работы хорошо .. , но после того, как изменение {2} будет {2,4} в правиле, как этот

RewriteRule ^([a-zA-Z]{2,4}).([a-zA-Z0-9_-]+)$ index.php?prefix=$1&username=$2 [QSA]  

это сделать сайт очень медленно ..

финальное звено должно быть sitename.com/prefix.name == index.php? Префикс = $ 1 & имя пользователя = $ 2

может любой помочь мне переписать правила?!

Update:

Options +FollowSymLinks 
ErrorDocument 400 /connect2/error.php?error=400 
ErrorDocument 401 /connect2/error.php?error=401 
ErrorDocument 403 /connect2/error.php?error=403 
ErrorDocument 404 /connect2/error.php?error=404 
ErrorDocument 500 /connect2/error.php?error=500 
RewriteEngine on 
RewriteBase /connect2/ 
RewriteCond %{REQUEST_URI} !^/objects.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# Block out any script that includes a <script> tag in URL 
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%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}) 

########## Begin - File injection protection, by SigSiu.net 
RewriteCond %{REQUEST_METHOD} GET 
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR] 
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR] 
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC] 
RewriteRule .* - [F] 
########## End - File injection protection 

########## Begin - Basic antispam Filter, by SigSiu.net 
## I removed some common words, tweak to your liking 
## This code uses PCRE and works only with Apache 2.x. 
## This code will NOT work with Apache 1.x servers. 
RewriteCond %{QUERY_STRING} \b(ambien|blue\spill|cialis|cocaine|ejaculation|erectile)\b [NC,OR] 
RewriteCond %{QUERY_STRING} \b(erections|hoodia|huronriveracres|impotence|levitra|libido)\b [NC,OR] 
RewriteCond %{QUERY_STRING} \b(lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)\b [NC,OR] 
RewriteCond %{QUERY_STRING} \b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)\b [NC] 
## Note: The final RewriteCond must NOT use the [OR] flag. 
RewriteRule .* - [F] 
## Note: The previous lines are a "compressed" version 
## of the filters. You can add your own filters as: 
## RewriteCond %{QUERY_STRING} \bbadword\b [NC,OR] 
## where "badword" is the word you want to exclude. 
########## End - Basic antispam Filter, by SigSiu.net 

########## Begin - Advanced server protection - query strings, referrer and config 
# Advanced server protection, version 3.2 - May 2011 
# by Nicholas K. Dionysopoulos 

## Disallow PHP Easter Eggs (can be used in fingerprinting attacks to determine 
## your PHP version). See http://www.0php.com/php_easter_egg.php and 
## http://osvdb.org/12184 for more information 
RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC] 
RewriteRule .* - [F] 

## SQLi first line of defense, thanks to Radek Suski (SigSiu.net) @ 
## http://www.sigsiu.net/presentations/fortifying_your_joomla_website.html 
## May cause problems on legitimate requests 
RewriteCond %{QUERY_STRING} concat[^\(]*\([NC,OR] 
RewriteCond %{QUERY_STRING} union([^s]*s)+elect [NC,OR] 
RewriteCond %{QUERY_STRING} union([^a]*a)+ll([^s]*s)+elect [NC] 
RewriteRule .* - [F] 

#Block mySQL injects 
RewriteCond %{QUERY_STRING} (;|<|>|’|”|\)|%0A|%0D|%22|%27|%3C|%3E|%00).*(/\*|union|select|insert|cast|set|declare|drop|update|md5|benchmark) [NC,OR] 

## Referrer filtering for common media files. Replace with your own domain name. 
## This blocks most common fingerprinting attacks ;) 
## Note: Change www\.example\.com with your own domain name, substituting the 
## dots with \. i.e. use www\.example\.com for www.example.com 
# RewriteRule ^images/stories/([^/]+/)*([^/.]+\.)+(jp(e?g|2)?|png|gif|bmp|css|js|swf|ico)$ - [L] 
RewriteCond %{HTTP_REFERER} . 
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com [NC] 
RewriteCond %{REQUEST_FILENAME} -f 
# RewriteRule \.(jp(e?g|2)?|png|gif|bmp|css|js|swf|ico)$ - [F] 

## Disallow visual fingerprinting of Joomla! sites (module position dump) 
## Initial idea by Brian Teeman and Ken Crowder, see: 
## http://www.slideshare.net/brianteeman/hidden-joomla-secrets 
## Improved by @nikosdion to work more efficiently and handle template 
## and tmpl query parameters 
RewriteCond %{QUERY_STRING} (^|&)tmpl=(component|system) [NC] 
RewriteRule .* - [L] 
RewriteCond %{QUERY_STRING} (^|&)t(p|emplate|mpl)= [NC] 
RewriteRule .* - [F] 

## Disallow access to htaccess.txt, configuration.php, configuration.php-dist and php.ini 
RewriteRule ^(htaccess\.txt|configuration\.php(-dist)?|php\.ini)$ - [F] 

########## End - Advanced server protection - query strings, referrer and config 

########## Begin - Optimal default expiration time 
## Note: this might cause problems and you might have to comment it out by 
## placing a hash in front of this section's lines 
<IfModule mod_expires.c> 
# Enable expiration control 
ExpiresActive On 

# Default expiration: 1 hour after request 
ExpiresDefault "now plus 1 hour" 

# CSS and JS expiration: 1 week after request 
ExpiresByType text/css "now plus 1 week" 
ExpiresByType application/javascript "now plus 1 week" 
ExpiresByType application/x-javascript "now plus 1 week" 

# Image files expiration: 1 month after request 
ExpiresByType image/bmp "now plus 1 month" 
ExpiresByType image/gif "now plus 1 month" 
ExpiresByType image/jpeg "now plus 1 month" 
ExpiresByType image/jp2 "now plus 1 month" 
ExpiresByType image/pipeg "now plus 1 month" 
ExpiresByType image/png "now plus 1 month" 
ExpiresByType image/svg+xml "now plus 1 month" 
ExpiresByType image/tiff "now plus 1 month" 
ExpiresByType image/vnd.microsoft.icon "now plus 1 month" 
ExpiresByType image/x-icon "now plus 1 month" 
ExpiresByType image/ico "now plus 1 month" 
ExpiresByType image/icon "now plus 1 month" 
ExpiresByType text/ico "now plus 1 month" 
ExpiresByType application/ico "now plus 1 month" 
ExpiresByType image/vnd.wap.wbmp "now plus 1 month" 
ExpiresByType application/vnd.wap.wbxml "now plus 1 month" 
ExpiresByType application/smil "now plus 1 month" 
</IfModule> 
########## End - Optimal expiration time 

ServerSignature Off 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z]{2,4})\.([\w-]+)$ index.php?prefix=$1&username=$2 [QSA,L,NC] 

ответ

0

Попробуйте

Options +FollowSymLinks 
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z]{2,4})\.([\w-]+)/?$ index.php?prefix=$1&username=$2 [QSA,L,NC] 

Это одно правило заботится обо всех случаях. \w эквивалентен [a-zA-Z0-9_]. Только [a-z] указано, потому что правило теперь не учитывает регистр, используя [NC]. Прицепная косая черта также является необязательной. /?.

+0

но это все та же проблема, когда я положил свой код .. в поджигатель это сделать ошибки загрузки все больше и больше и больше , что значит, когда у меня есть одна ошибка в поджигатель !! GET HTTP: //localhost/connect2/img/slide-5.jpg 404 (не найден) он загрузит скорее больше становится 2, затем 3, затем 4, затем 5 ~ 99999999 GET HTTP: // локальный/connect2/img/slide-5.jpg 404 (не найдено) GET http: //localhost/connect2/img/slide-5.jpg 404 (не найдено) GET http: // localhost/connect2/img/slide- 5.jpg 404 (не найдено) GET http: //localhost/connect2/img/slide-5.jpg 404 (не найдено) какая проблема?! – abunour

+0

В какую папку вы разместили файл .htaccess? –

+0

в папке {connect2} ,, http: // localhost/connect2 – abunour

Смежные вопросы