.htaccess 파일에 많은 스크립트를 넣었고, 내가 원하는 방식대로 정확하게 작업 한 것을 기록했다..htaccess URL에서 .php 확장자를 제거하지 말 것.
예를 들어, htdocs 폴더에 test.php라는 파일이 있고 localhost/test.php에 갔다면 브라우저에서 localhost/test로 파일을 다시 작성하고 싶습니다.
이 작업을 수행하는 2 개의 .htaccess 파일을 발견했는데 아래에 그 문제점을 설명했지만 양식을 사용하여 MYSQL 데이터베이스에 데이터를 삽입 할 때마다 빈 필드가 항상 생깁니다.
이이 그때 어제 다음 시간 및 시간을 검색 한 후 마법처럼 정확하게 작동 일부 스크립트를 발견 한
# Turn on the rewrite engine
RewriteEngine on
# If the request doesn't end in .php (Case insensitive) continue processing rules
RewriteCond %{REQUEST_URI} !\.php$ [NC]
# If the request doesn't end in a slash continue processing the rules
RewriteCond %{REQUEST_URI} [^/]$
# Rewrite the request with a .php extension. L means this is the 'Last' rule
RewriteRule ^(.*)$ $1.php [L]
(가) 두 번째 난에 갔다 첫 번째 일
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase/
## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule^%1 [R,L,NC]
## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule^%{REQUEST_URI}.php [L]
입니다 샤워가 돌아 왔고 그들은 일하지 않았다. (이전 .htaccess 파일을 삭제하고 새 파일을 만들고, mysql과 apache를 다시 시작하고, 브라우저 데이터를 지우고, .htaccess가 여전히 작동하지 않을 것입니다.) 그리고 나는 샤워하기 전에 내가 원하는 방법을 사용했습니다.
는 이러한 2 지금은 경우에만 작동 (아니, 난이 동시에 htaccess로 파일에 모두 넣지 않았다) 그래서
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^([^\.]+)$ $1.html [NC,L]
RewriteRule ^([^\.]+)$ $1.php [NC,L]
두 번째
# Options is required by Many Hosting
Options +MultiViews
RewriteEngine on
# For .php & .html URL's:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^([^\.]+)$ $1.html [NC,L]
을하기 전에 일 I 수동으로 URL에서 .php를 제거하지만 그렇게하고 싶지 않거나 .php 확장명을 가진 php 문서의 모든 링크를 수동으로 변경하고 싶지 않고 둘 중 하나를 사용하고 싶었습니다. 양식을 사용하여 MYSQL에 데이터를 삽입 할 때 실제로 데이터가 나타나고 필드가 b가 아니기 때문에 여윈.
localhost/test.php가 슬래시를 추가하여 로컬 호스트/test.php가되었지만 이제는 작동하지 않지만 더 이상 작동하지 않지만 양식을 사용하여 데이터를 삽입하면 MYSQL 데이터베이스에 필드도 비어 있습니다.
# Apache Rewrite Rules
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase/
# Add trailing slash to url
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
RewriteRule ^(.*)$ $1/ [R=301,L]
# Remove .php-extension from url
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)/$ $1.php
# End of Apache Rewrite Rules
나는 내가 발견하고 그들이하기로했다 정확히 어떻게 일을하는 사람의 메모를했지만 지금은 작동하지 않는, 사람이 이유를 알고 않습니다 말했듯이? 또는 내가 원하는 것을 정확히 수행하기 위해 조정할 수있는 방법은 무엇입니까? 나는 말 그대로 과거의 하루를 보냈다. Btw Windows 7에서 XAMPP를 사용하고 있습니다.
TLDR이지만'RewriteRule's의'QSA' 플래그를 찾고 있습니다 같이 점등 소리. – arkascha