Что является подходящим .htaccess rewriterule для моего сайта

Я думаю, что я не понимаю, как именно .htaccess переписать работу, поэтому я прошу вашей помощи. мне нужно изменить http://www.mywebsite.com/index.php?name=first в http://www.mywebsite.com/first .
Это возможно?
Содержимое моего текущего файла .htaccess:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^/(.*)$ /index.php?menu=$1 [L]

Очевидно, это не работает. Каким будет содержимое файла .htaccess?

0

Решение

Почему бы вам не использовать это в вашем .htaccess

<IfModule mod_rewrite.c>

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule
^(.*)/?$ index.php?page=$1 [L]

</IfModule>

Затем в вашем index.php вы возвращаете соответствующую страницу:

# SELECT WHICH PAGE TO DISPLAY
function getPage($showPage) {
$modules = array(#never name the slugs as same as the php pages
'/sign-in/i' => 'register.php',
'/signout/i' => 'logout.php',
'/staff/i' => 'admin.php',
'/products/i' => 'blank.php',
);
foreach ($modules as $slug=>$phpmodule) {
if(preg_match($slug, $showPage)) {
return $phpmodule;
}
}
return 'blank.php';#in case module not found display 404 page
}

if (isset($_GET['page'])) {
require_once (getPage($_GET['page'])); #include the appropriate module file
}

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

1

Другие решения

Попробуй это:

Options All -Indexes

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index.php?name=$1 [L]
1

Просто поместите это в ваш файл .htaccess

<IfModule mod_rewrite.c>

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule
^(.*)/?$ index.php?name=$1 [L]

</IfModule>
0