2013-11-21 2 views

ответ

2

Похоже, что у вас есть это правило в обратном порядке в вашем коде.

Попробуйте эти правила в файле DOCUMENT_ROOT/NEW/.htaccess:

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase /NEW/ 

# fix css/js/media links 
RewriteRule ^.+?/((?:css|js|media)/.+)$ /$1 [R=302,NC,L,NE] 

# remove spaces 
RewriteRule "^([^ ]*) +(.*)$" $1$2 [L,R] 

# external redirect from actual URL to pretty one 
RewriteCond %{THE_REQUEST} /movie\.php\?name=([^&]*)&id=([^\s&]+) [NC] 
RewriteRule^%1/%2.htm? [R=302,L,NE] 

# internal forward from pretty URL to actual one 
RewriteRule ^([^/]+)/([^.]+)\.html?$ movie.php?name=$1&id=$2 [L,NC,QSA,NE] 
+0

Это работает, но он удаляет NEW Directory из url. URL теперь становится: http://www.movieking.me/Snitch/0882977.htm и теперь отображаются изображения и css? – AXheladini

+0

Но вы написали: 'Я хочу, чтобы он отображался следующим образом: http: // www.example.com/Parker/1904996.htm' Вы хотите: http://www.example.com/NEW/ Паркер/1904996.htm'? – anubhava

+0

Да, это случай, я вижу, что я написал это неправильно, извините – AXheladini

1

.html означает «любой символ, за которым следует буквенная строка html. Тем не менее, вы хотите быть .htm. Вы можете избежать период, поставив обратную косую черту перед ним.

  • . = Любой символ
  • \. = литералом . символов

Возможно использовать

RewriteRule ^([^/]+)/(.+)\.html?$ /NEW/movie.php?name=$1&id=$2 [L] 

Что бы вперед и .html и .htm (как l следует «повторяться 0 или 1 раз»).

Изменения:

  • [^/]+ вместо [^/]. Плюс означает «повторяется 1 или более раз». Если у вас этого нет, вы можете разрешить только символ, который не является косой чертой.
  • (.+) вместо [^/]. Поскольку мы не хотим, чтобы он продолжал соответствовать, пока мы не достигли косой черты (поскольку мы не достигнем косой черты), мы используем жадный термин .+, означающий «соответствовать как можно большему количеству символов, пока вы не достигнете следующей части (будучи \.html?$) . мы также могли бы использовать [^\.], но это означало бы, что мы не могли использовать любые периоды в нашем ID

в качестве альтернативы, если идентификатор может быть только номер:.

RewriteRule ^([^/]+)/([1-9][0-9]*)\.html?$ /NEW/movie.php?name=$1&id=$2 [L] 

[1-9][0-9]* означает «любая цифра между 1 и 9, за которым следует любая цифра между 0-9, повторяющимися 0 до бесконечности раз "

+0

Все еще ничего, мне нужно удалить NEW /, если я поместить этот файл в том же каталоге? – AXheladini

+0

@AXheladini Какая ошибка у вас? 500? 404? – h2ooooooo

+0

Ничто не работает как обычно, показывая этот URL: http://www.example.com/NEW/movie.php?name=Parker&id=1904996 – AXheladini

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