Дружественные URL со странным ответом .htacces формируют мой веб-хостинг ... ПОМОГИТЕ - PullRequest
1 голос
/ 17 июня 2010

Я просто хотел, чтобы, когда это вставлено в URL:

http://website.com/pelicula/0221889/
http://website.com/pelicula/0221889/posters/

Это действительно так (в фоновом режиме):

http://website.com/index.php?ctrl=pelicula&id=0160399
http://website.com/index.php?ctrl=pelicula&id=0160399&tab=posters

Итак, я поместил это в мой файл .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^/([^/]+)/([^/]+)/?([^/]*)/?$ index.php?ctrl=$1&id=$2&tab=$3 [QSA,L]
</IfModule>

Но на моем веб-хосте это не сработало, поэтому я попросил помощи у их службы поддержки, и это был их ответ:

<IfModule mod_rewrite.c>
RewriteEngine On
# If subdomain www exists, remove it first
#RewriteCond %{HTTP_HOST} ^www.([^.]+.[^.]+)$ [NC]
#RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

# If requested resource does not exist as a file
RewriteCond %{REQUEST_FILENAME} !-f
# and does not end with a period followed by a filetype
RewriteCond %{REQUEST_URI} !..+$
# and does not end with a slash
RewriteCond %{REQUEST_URI} !/$
# then add a trailing slash and redirect
RewriteRule (.*) $1/ [R=301,L]
</IfModule>

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

# END WordPress

Очевидно, что он работает не так, как хотелось бы, поэтому я просто хочу знать, как это исправить !!! Я ничего не знаю о mod_rewrite, и мне действительно нужно, чтобы это работало идеально ... Я схожу с ума, я не знаю, в чем проблема .. Пожалуйста, помогите!

1 Ответ

1 голос
/ 17 июня 2010

Кажется, что парни из службы поддержки только что отправили вам первый код перезаписи URL, который они нашли в своей базе знаний, чтобы он послужил примером. И это нормально: ни один хостинг в мире не может предоставить бесплатные консультационные услуги:)

Я предлагаю вам постараться сделать это просто:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^/]+)/(\d+)/([^/]+)/?$ index.php?ctrl=$1&id=$2&tab=$3 [QSA,L]
    RewriteRule ^([^/]+)/(\d+)/?$         index.php?ctrl=$1&id=$2 [QSA,L]
    RewriteRule ^([^/]+)/?$               index.php?ctrl=$1 [QSA,L]
</IfModule>
...